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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM