Docker磁盘空间不足如何解决

当我们使用docker时,经常会创建新镜像和新容器,在新容器中又会安装各种包,这些东西不是虚拟的,而是实实在在存于我们的磁盘中,默认在/var/lib/docker中,这个目录是属于系统盘的,而系统盘的空间往往不大,这样就会造成,随着时间的推移,docker越来越大,最后系统盘的空间被占满,所以这个时候就需要迁移docker的存储目录到更大的盘,才能把系统盘的空间腾出来。

1、查看服务器所有磁盘的使用情况:
df -h

可以看到,红框处就是系统盘的大小,总大小是188G(相对其他盘小太多),之前是占满的,但是博主已经做了迁移,所以空出了很大的空间。
在这里插入图片描述

2、查看docker镜像和容器存储目录的空间大小
du -sh /var/lib/docker/
3、停止docker服务
systemctl stop docker

这里比较奇怪的是,我的systemctl 一直失败,也找不到原因,报错如下:

Failed to execute operation: Launch helper exited with unknown return code 1

知道原因的小伙伴可以教一下怎么解决。如果大家试了上面的命令失败了,就用下面这个命令:

service docker stop
4、将docker迁移到大容量的磁盘中
# 首先创建目录
mkdir -p 大磁盘目录/docker/lib/
# 迁移
rsync -avz /var/lib/docker 大磁盘目录/docker/lib/
5、编辑/etc/docker/daemon.json,添加参数,将docker的目录迁移绑定

红框是添加的参数
在这里插入图片描述

6、重载和重启docker服务
systemctl daemon-reload && systemctl restart docker

但是systemctl我依然运行失败,所以我是使用以下命令重启docker的:

service docker restart
7、检查docker是否绑定新目录
docker info

如果Docker Root Dir由/var/lib/docker变为你指定的目录,说明迁移成功。
在这里插入图片描述

8、删除docker旧目录
rm -rf /var/lib/docker

参考文献

[1] docker磁盘空间不足解决办法

### 如何解决 Docker 部署过程中的磁盘空间不足问题 #### 清理不必要的 Docker 数据 当 Docker 使用一段时间后,会积累大量的未使用的镜像、容器和卷。定期清理这些资源可以帮助释放宝贵的磁盘空间。 ```bash docker system prune -a ``` 这条命令将会删除所有停止的容器、无用的数据卷以及悬空的镜像[^1]。 #### 修改 Docker 默认存储位置 如果当前磁盘分区确实无法满足需求,则可以选择将 Docker 的默认存储路径迁移到其他有更多可用空间的位置。具体操作如下: - **备份现有配置** 停止 Docker 服务并复制现有的 `/var/lib/docker` 文件夹到新的目标位置作为备份。 - **编辑启动参数** 对于 systemd 系统,在 `/etc/docker/daemon.json` 中指定 `data-root` 参数指向新位置: ```json { "data-root": "/mnt/newdisk/docker" } ``` - **重启 Docker 并验证** 应用更改之后重新启动 Docker,并确认其正在使用更新后的设置工作正常[^2]。 #### 删除大型日志文件 有时应用程序的日志也会占据相当一部分容量。可以通过查找并处理过大的日志来缓解此状况: ```bash find /var/log -size +100M -exec rm {} \; ``` 上述指令用于定位超过 100MB 的单个日志条目并将其移除;当然也可以调整大小阈值以适应实际情况[^4]。 #### 控制日志增长速度 为了防止未来再次发生同样的情况,建议优化应用内部的日志记录策略,比如启用循环日志机制或将重要信息发送至集中式的日志管理系统中去[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值