Docker 替換儲存的地方
一種是以直接修改 Docker Daemon 配置文件的方式,一種是用 rsync 的方式。基於安全,我建議使用 rsync 的方式。
使用 rsync 的方式
要知道 docker 的預設位置:
docker info | grep -i "docker root dir"
我在 ubuntu 會是 /var/lib/docker 。因為我的 /var/lib/docker 安裝在硬碟 sda2 容量不夠用,我希望移動到 sda3 的 /mnt/userdata/docker。以下提供完整的步驟來將 Docker 資料目錄從 /var/lib/docker
移動到 /mnt/userdata/docker
,以釋放 sda2 的容量:
停止 Docker 服務
sudo systemctl stop docker
確保 /mnt/userdata 目錄存在,如果不存在,創建它
sudo mkdir -p /mnt/userdata
複製現有的 Docker 資料目錄到新的位置(這裡假設 sda3 已經掛載到 /mnt/userdata)
sudo rsync -aP /var/lib/docker/ /mnt/userdata/docker/
移動並作為備份原始的 Docker 資料目錄(強烈建議,之後沒問題再刪除)
sudo mv /var/lib/docker /var/lib/docker_backup
建立一個新的符號連結指向新的目錄
sudo ln -s /mnt/userdata/docker /var/lib/docker
啟動 Docker 服務
sudo systemctl start docker
確認 Docker 是否正確運作
sudo docker info
確認 /var/lib/docker 已經是符號連結到 /mnt/userdata/docker
ls -lh /var/lib/docker
如果一切正確,你應該能夠看到 /var/lib/docker 指向 /mnt/userdata/docker
使用 Docker Daemon
停止 docker 服務
sudo service docker stop
移動到新目錄,例如掛載的 mnt/userdata 底下
sudo mv /var/lib/docker /mnt/userdata/docker
修改配置文件,如果不存在就新增
sudo vim /etc/docker/daemon.json
添加以下內容
{
"data-root": "/new/path/to/docker"
}
啟動 Docker 服務
sudo service docker start