简介
Docker 在长时间使用后,可能会因为镜像和容器的积累导致默认存储空间不足。本技术文档将指导您如何安全地将 Docker 的镜像和容器存放路径修改至挂载的磁盘中,以解决空间不足的问题。请确保在操作前,您的目标磁盘已经成功挂载。
查看 Docker 当前信息
在开始之前,可以通过以下命令查看 Docker 的当前存储配置信息:
docker info
方法:使用软链接迁移
步骤
-
停止 Docker 服务
sudo service docker stop
-
备份并迁移数据
将原有 Docker 数据迁移到新的存储路径,例如
/path/docker
:sudo cp -r /var/lib/docker/* /path/docker
-
备份原 Docker 目录
为了安全,先备份原 Docker 数据目录:
sudo mv /var/lib/docker /var/lib/dockerbak
-
创建软链接
创建从原位置到新位置的软链接:
sudo ln -s /path/docker /var/lib/docker
-
启动 Docker 服务
sudo service docker start
-
验证与清理
检查 Docker 是否正常工作,确认无误后可考虑删除原备份:
sudo rm -rf /var/lib/dockerbak
注意
虽然 Docker 显示的存储路径仍是 /var/lib/docker
,但实际上数据已存储在指定的数据盘上。
方法:通过 daemon.json 配置(推荐)
适用场景
对于 Docker 1.12 或以上版本,推荐使用此方法,尤其是在 Docker 初次安装后立即调整,避免后续因路径变更引发的问题。
步骤
-
停止 Docker 服务(可选,但建议)
-
编辑 daemon.json 文件
如果文件不存在,则创建它:
sudo vim /etc/docker/daemon.json
添加如下内容:
{"graph": "/path/docker" }
其中
/path/docker
是您希望设置的新存储路径。 -
重启 Docker 服务
sudo systemctl restart docker
-
迁移已有数据(如有需要)
如果 Docker 已经有数据,需要手动迁移旧数据至新路径,例如:
sudo cp -R /var/lib/docker/* /path/docker/
-
验证修改
运行
docker info
检查存储路径是否已更改为新的位置。
以上就是修改 Docker 镜像和容器存放路径的方法。根据您的具体需求和 Docker 版本,选择最合适的方法进行操作。务必谨慎处理数据迁移,以防重要数据丢失。