【Docker】配置指定大小的磁盘空间

背景

测试磁盘满时程序的运行情况

问题

如何使用 docker 来模拟磁盘满的情况

解决方法

  • 创建指定大小的数据卷 volume
    docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=50M my_volumn
    
  • 创建 docker 时,使用该数据卷
    docker run -it -d --name test_io -v my_volumn:/home/test/test_io_volumn my_image /bin/bash
    
  • 在容器中,/home/test/test_io_volumn 文件夹就只有50M大小了
### 清理或减少 Docker Overlay2 存储驱动占用的磁盘空间 #### 了解原因 Overlay2 是 Docker 的默认存储驱动,实现了镜像层和容器层的分层存储技术。当发现 `/var/lib/docker/overlay2` 目录占用较大时,通常是因为某些挂载的目录过大或是存在不必要的文件和日志[^1]。 #### 检查并清理无用资源 为了有效释放磁盘空间,建议先检查是否有不再使用的镜像、容器、网络或其他未被利用的资源: ```bash docker system prune -a ``` 此命令会删除所有停止的容器、未使用的网络以及悬空的镜像(即没有标签也没有容器依赖的镜像)。如果希望保留正在运行的服务而不影响它们,则可以省略 `-a` 参数[^3]。 #### 处理过大的日志文件 有时大量的日志记录也会导致磁盘使用率上升。可以通过截断现有日志或将旧日志轮转到新的位置来解决问题。对于单个容器的日志清理,可执行如下命令: ```bash sudo truncate -s 0 /var/lib/docker/containers/*/*.log ``` 这将会把所有的 JSON 日志文件大小设置为零字节,从而立即腾出大量空间。不过需要注意的是这样做可能会丢失一些有用的调试信息,在生产环境中应谨慎操作[^4]。 #### 调整配置优化长期性能 为了避免将来再次遇到同样的问题,考虑调整 Docker 守护进程和服务端口上的参数,例如通过 `daemon.json` 文件指定不同的日志级别或者启用日志旋转策略;也可以尝试更换更高效的日志驱动程序如 `journald` 或者自定义路径保存日志文件[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值