1. 程式人生 > 實用技巧 >docker修改預設儲存路徑

docker修改預設儲存路徑

docker修改預設儲存路徑

方法一:通過修改docker的配置檔案

docker預設的配置檔案位置為:/etc/docker/daemon.json

預設配置內容為:

{
  "log-level": "warn",
  "log-driver": "json-file",
  "log-opts": {
     "max-size": "10m",
     "max-file": "5"
   }
}

這裡有兩種情況

低版本docker在配置json中增加"graph":"/var/lib/docker"
高版本docker在配置json中增加"data-root":"/var/lib/docker"

將其中的/var/lib/docker替換為想要更改的路徑。(/var/lib/docker是docker預設的儲存位置)

低版本docker示例:

{
  "log-level": "warn",
  "log-driver": "json-file",
  "log-opts": {
     "max-size": "10m",
     "max-file": "5"
   },
   "graph":"/var/lib/docker"
}

高版本docker示例:

{
  "log-level": "warn",
  "log-driver": "json-file",
  "log-opts": {
     "max-size": "10m",
     "max-file": "5"
   },
   "data-root":"/var/lib/docker"
}

然後執行systemctl restart docker

命令重啟docker服務

輸入docker info命令,檢視Docker Root Dir的值可以驗證是否修改成功

注意點:

通過這種方式修改docker儲存路徑時,如果你已經運行了部分容器,當修改docker儲存路徑並遷移資料之後,如果容器使用的是docker volume(注意一些容器在不指定volume的情況下會自動建立,比如mysql),那麼就有可能報錯,此時需要重新建立容器。

方法二:通過軟連結修改

1、停止docker服務

輸入systemctl stop docker命令停止docker服務

然後使用docker info命令驗證,停止docker服務後會顯示

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

2、移動原先的/var/lib/docker中的檔案到你想要的位置

以新路徑為/mytest為例

輸入mv /var/lib/docker/ /mytest/,將整個docker資料夾移動到/mytest下

然後輸入ln -s /mytest/docker /var/lib/docker建立軟連結

輸入systemctl start docker命令啟動docker服務

使用這種方式修改,當輸入docker info的時候,會看到

小實驗:

如果我們在方法二使用軟連結的基礎上,再使用方法一將docker的儲存路徑顯式更改為/var/lib/docker(也就是docker的預設儲存路徑),使用docker info檢視,Docker Root Dir會是什麼值呢?

實測,依然是軟連結的路徑,即/mytest/docker