docker根目录占用的磁盘空间太大,将其迁移到新的磁盘上,后续的镜像和容器存储空间将在新的磁盘上,文章方法适用于docker版本 >= V17.05 ,详情见官方文档:Engine v17.05 | Docker Docs

1、查看docker现有的存储目录
docker info
在打印的信息中查看Docker Root Dir,即为当前的根目录,默认是/var/lib/docker,如下图:

2、查看docker的service位置
systemctl status docker.service
docker.service位置如下图所示,后面的步骤需要修改这个文件中的内容。

3、停止docker.service
systemctl stop docker.service
4、复制现有存储目录到新的存放位置
选择一个磁盘空间足够的目录,用来作为docker新的根目录,将原有根目录的文件全部复制过来,假设新的存放目录是:/data/docker
现有存储目录由第一步可以知道是:/var/lib/docker,将里面的所有文件复制到新目录下,如下:
cp-r /var/lib/docker/* /data/docker
注:新的存放文件目录,root账号需要有读写权限,可以直接放开所有授权 chmod -R 777 /data/docker
5、修改根目录的路径
如下有两种方式,使用任意一种即可。
修改docker.service
在ExecStart=/usr/bin/dockerd后面增加--data-root=/data/docker
,中间空格隔开,/data/docker即为第4步中复制的新的存放目录,如果后面存在其他配置,不要修改,如下所示:

修改daemon.json
也可以修改/etc/docker/daemon.json来实现(如果damon.json文件不存在,可以新增一个文件),示例如下:
{ "data-root":"/data/docker" }
注:上面两种方式最好不要同时使用,如果配置的根目录发生冲突,会导致docker服务启动失败。启动失败可以通过命令journalctl -u docker.service
查看详细日志。
6、重启docker服务
systemctl daemon-reload systemctl restart docker.service
7、验证查看原有的镜像和容器
docker images dockerps-a
到此迁移就完成,测试容器中运行的服务是否可以正常访问即可

版权声明:本文内容来自博客园:浪迹天涯的派大星,遵循CC 4.0 BY-SA版权协议上原文接及本声明。
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。
原文链接:https://www.cnblogs.com/zhaodalei/p/18460800
如有涉及到侵权,请联系,将立即予以删除处理。
在此特别鸣谢原作者的创作。
此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。