引言
docker所在服务器,在运行了一段时间后,服务器磁盘目录渐渐不够用。
通过du -h --max-depth=1 / 逐级目录排查,发现/var/lib/docker目录文件过大。
解决方法
转移数据修改docker默认存储位置
建议:在docker安装完后,修改docker默认存储位置为其他大目录或者磁盘,规避迁移数据过程中造成的风险。
操作步骤
1、停止docker服务
systemctl stop docker
2、创建新docker目录
使用命令df -h,找一个大的磁盘,比如新根目录/home

创建/home/docker/lib
mkdir -p /home/docker/lib
3、迁移/var/lib/docker目录下面的文件到/home/docker/lib
docker路径:/home/docker/lib/docker
rsync -avz /var/lib/docker/ /home/docker/lib/
4、配置 /usr/lib/systemd/system/docker.service
vi /usr/lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
注意:也可以做软链接
cd /var/lib
rm -rf docker #前面的mv实际只有复制的效果,所以这里要执行一下删除操作
ln -s /home/docker/lib/ /var/lib/docker
5、重启docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
6、确认Docker Root Dir修改是否已经生效
[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker info
...
Docker Root Dir: /home/docker/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
...
7、启动成功后,再确认之前的镜像是否还在
[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
8、确定迁移后容器没问题,再删除/var/lib/docker/目录下的文件
rm -rf /var/lib/docker
附录:
常见docker清理方法
docker system df 类似于Linux上的df命令,用于查看Docker的磁盘使用情况:
docker system prune 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。
docker system prune -a 清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?