Docker目录迁移
# 背景
由于早上到公司发现 /var/lib/docker/overlay2 占用空间很大,决定做一下 /var/lib/docker 目录迁移工作。
# 迁移步骤
- 停止 docker 服务
systemctl stop docker.service
- 查看磁盘情况
通过命令
df -h先去看下磁盘大概的情况,找一个大的空间。 - 创建 docker 的新目录
我这边找了
data,所以我这边的新目录地址是/data/docker/lib/。
mkdir -p /data/docker/lib
注:参数 -p 确保目录名称存在,如果目录不存在的就新创建一个。
4. 开始迁移
rsync -avzP /var/lib/docker /data/docker/lib/
先确认是否安装了 rsync。
参数解释:
-a:归档模式,表示递归传输并保持文件属性。-v:显示rsync过程中详细信息。可以使用-vvvv获取更详细信息。-P:显示文件传输的进度信息。(实际上-P=--partial --progress,其中的--progress才是显示进度信息的)。-z:传输时进行压缩提高效率。
- 指定新的 docker 目录
vim /lib/systemd/system/docker.service
旧版本docker的话,在 ExecStart 加入可生效:
--graph=/data/docker/lib/docker
新版本docker需要修改/etc/docker/daemon.json文件,在该文件中新增这样的一行:
{
"data-root": "/data/docker/lib/docker",
}
- 重启 docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
- 删除旧目录
启动之后确认 docker 没有问题,删除旧的
/var/lib/docker/目录。
# 总结
到此迁移 docker 目录工作结束,所以再装 docker 时,一定先选好工作目录。
上次更新: 2025/03/20, 14:48:23