You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian Stretch环境下Docker容器夜间运行占满磁盘空间求助

排查Docker夜间分区占满问题的思路

针对你遇到的「白天运行数小时容器空间正常,夜间持续运行后Docker分区被完全占满」的问题,结合你的Debian Stretch + Docker 18.03.1-ce(overlay2存储驱动、extfs文件系统、d_type和原生Overlay Diff支持正常)的配置,我整理了几个最可能的排查和解决方向:

1. 优先排查容器日志无限制增长

Docker默认的json-file日志驱动不会限制日志文件大小,很多长期运行的容器在夜间执行定时任务、批处理时,会产生大量stdout/stderr日志,不知不觉占满磁盘。

  • 查看容器日志大小:
    先找到目标容器的日志路径:

    docker inspect --format='{{.LogPath}}' <你的容器ID/名称>
    

    再查看日志文件的大小:

    du -h <上面得到的日志路径>
    
  • 解决方法:

    • 临时给单个容器配置日志限制(重启容器生效):
      docker run --log-opt max-size=10m --log-opt max-file=3 <你的容器镜像>
      
      这里限制单日志文件最大10MB,最多保留3个日志文件。
    • 全局配置所有容器的日志限制(修改/etc/docker/daemon.json,如果文件不存在就新建):
      {
        "log-driver": "json-file",
        "log-opts": {
          "max-size": "10m",
          "max-file": "3"
        }
      }
      
      配置后重启Docker服务:
      systemctl restart docker
      

2. 检查容器内临时文件堆积

很多程序在夜间运行时会生成大量临时文件(比如缓存、下载的中间数据、临时报表),而长期运行的容器不会自动清理这些文件,时间一长就会占满空间。

  • 排查临时文件:
    进入容器查看核心临时目录的占用情况:

    docker exec -it <你的容器ID> bash
    # 检查系统临时目录
    du -sh /tmp
    # 检查程序自身的缓存目录(比如应用的cache、tmp文件夹)
    du -sh /path/to/app/tmp
    
  • 解决方法:

    • 在容器内添加定时清理任务:比如用cron定时删除/tmp下超过24小时的文件:
      echo "0 0 * * * find /tmp -type f -mtime +1 -delete" | crontab -
      
    • 把临时目录挂载为宿主机的tmpfs(内存文件系统,重启后自动清空):
      docker run --tmpfs /tmp:rw,size=1G <你的容器镜像>
      
      这里限制/tmp最大使用1GB内存,根据你的需求调整。

3. 清理Docker未使用的资源

虽然你白天运行正常,但如果长期积累未使用的镜像、容器、卷,也可能在夜间触发某种清理机制前占满磁盘(不过这个概率稍低,但值得排查):

  • 查看Docker空间使用情况:

    docker system df
    

    这个命令会显示镜像、容器、卷、构建缓存的占用情况。

  • 清理未使用的资源:
    执行以下命令清理所有未运行的容器、未被使用的镜像、卷和网络(执行前确认不需要这些资源):

    docker system prune -a
    

    如果只想清理未被使用的卷(卷可能存储了持久化数据,谨慎操作):

    docker volume prune
    

4. 确认宿主机其他进程是否占用Docker分区

有时候不是Docker的问题,而是宿主机上其他进程在夜间写入大量数据到Docker所在的分区。

  • 排查分区占用:
    先确认Docker分区的挂载点(比如/var/lib/docker所在的分区),然后用以下命令逐层排查目录占用:
    # 查看根目录下各文件夹大小
    du -sh /*
    # 进入Docker分区挂载点,查看子目录大小
    cd /var/lib/docker
    du -sh *
    

先从容器日志和临时文件这两个方向入手,这是长期运行容器夜间爆盘最常见的原因。

内容的提问来源于stack exchange,提问作者davidwessman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:08:28