解决 docker 磁盘空间不足问题

本文介绍了解决Docker磁盘空间不足的方法,包括修改Docker默认存储位置至更大的磁盘,通过rsync迁移原有数据,更新Docker服务配置,并验证修改后的Docker根目录及镜像完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决docker磁盘空间不足问题

docker所在服务器,运行了一段时间后,发现服务器磁盘目录快不够用了。通过du -h --max-depth=1 / 逐级目录排查,发现/var/lib/docker目录文件过大。通过以下方法,解决该问题。

转移数据修改docker默认存储位置

有多种方式修改docker默认存储位置。
最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中。规避迁移数据过程中造成的风险。

- 停止docker服务

systemctl stop docker

- 创建新的docker目录,执行命令df -h,找一个大的磁盘
我在 /data目录下面建了/data/docker/lib目录

 mkdir -p /data/docker/lib

- 迁移/var/lib/docker目录下面的文件到/data/docker/lib
迁移后的完成docker路径:/data/docker/lib/docker

rsync -avz /var/lib/docker/ /data/docker/lib/

- 配置 /usr/lib/systemd/system/docker.service

vi /usr/lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd  --graph=/data/docker/lib/docker

- 重启docker

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

- 确认Docker Root Dir修改是否已经生效

[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker info
...
Docker Root Dir: /data/docker/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
...

- 启动成功后,再确认之前的镜像是否还在

[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
10.80.177.233/policy                2.1.2               64ac4e178cd2        2 hours ago         818 MB
10.80.177.233/crm                   2.1.3               d7636fbb7a29        2 hours ago         762 MB

- 确定容器没问题后删除/var/lib/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]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值