docker镜像存储目录进行迁移
·
描述说明
要将 Docker 的存储路径从 /var/lib/docker 修改为 /home/lib/docker,需通过配置 Docker 守护进程的配置文件实现。具体步骤如下:
步骤1、通过 docker info 查看现有路径的位置
docker info | grep "Docker Root Dir"
输出类似下面的内容:
Docker Root Dir: /var/lib/docker
步骤 2:停止 Docker 服务
修改配置前,需先停止 Docker 服务,避免数据不一致:
systemctl stop docker
# 若有 docker.socket 也需停止(部分系统需要)
systemctl stop docker.socket
步骤 3:创建新的存储目录并迁移数据
-
创建目标目录(确保
/home有足够空间):mkdir -p /home/lib/docker -
迁移现有数据(如果需要保留原镜像 / 容器,必须执行此步):使用
rsync复制旧目录数据到新目录(保持文件权限和属性):rsync -av /var/lib/docker/ /home/lib/docker/(
-a表示归档模式,-v显示进度,确保复制完整)
步骤 4:配置 Docker 守护进程
Docker 守护进程的配置文件为 /etc/docker/daemon.json(若不存在则创建),通过 data-root 字段指定新路径:
-
编辑或创建配置文件:
vim /etc/docker/daemon.json -
写入以下内容(确保 JSON 格式正确,无多余逗号):
{ "log-opts": { "max-size": "5m", "max-file": "3" }, "data-root": "/home/lib/docker", "exec-opts": ["native.cgroupdriver=systemd"] } -
保存退出(
vim中按ESC,输入:wq回车)。
步骤 5:启动 Docker 服务并验证
-
启动 Docker 服务:
systemctl start docker -
验证新路径是否生效:
docker info | grep "Docker Root Dir"若输出为
Docker Root Dir: /home/lib/docker,则表示修改成功。
步骤 6:清理旧目录(可选)
确认新路径正常工作后,可删除旧目录释放空间:
rm -rf /var/lib/docker
注意事项
- 确保
/home分区有足够的存储空间(Docker 镜像 / 容器可能占用大量空间)。 - 若修改后 Docker 服务启动失败,检查
daemon.json格式是否正确(可通过journalctl -u docker查看错误日志)。 - 迁移数据后,原有的镜像、容器、网络等数据会完整保留,无需重新拉取或创建。
更多推荐
所有评论(0)