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

执行docker build占满根目录空间,无法重启服务器如何清理?

解决步骤

第一步:终止残留的构建进程

首先排查当前是否有未正常退出的Docker构建进程占用临时文件:
ps aux | grep "docker build"
找到对应进程ID后执行终止操作(不要加-9参数,避免产生无法清理的僵尸文件):
kill <对应进程PID>

第二步:清理构建遗留临时文件

你当前/var/lib/docker/tmp目录占用的182G全部是本次失败构建遗留的上下文打包文件,无正在运行的构建任务时可直接删除该目录下的所有内容:
sudo rm -rf /var/lib/docker/tmp/*
执行完成后即可释放至少180G的根目录空间。

第三步:清理冗余Docker资源

之前执行的docker system prune默认仅清理悬空资源、已停止容器等,不会清理未被使用的旧镜像和中间构建层,可执行带参数的清理命令释放更多空间:

注意:以下操作不会影响正在运行的业务容器及其关联的镜像、存储层,无需重启Docker服务或服务器。

  • 清理所有未被使用的Docker资源(含悬空镜像、未被引用的镜像、已停止容器、未使用的网络等):
    docker system prune -a
  • 若仅需要清理冗余镜像,可单独执行:
    docker image prune -a -f

操作前可执行docker system df查看Docker各部分资源占用明细,确认可清理的资源范围。

第四步:避免后续重复出现该问题

本次问题的原因是Docker构建时会默认将执行命令的当前目录全部作为构建上下文打包上传到Docker daemon,未过滤的大文件会被一同打包占用磁盘,可通过以下方式规避:

  1. 在构建目录下创建.dockerignore文件,明确列出不需要加入构建上下文的文件/目录,本次场景可写入如下内容:
folder_1/
folder_2/
# 还可加入其他不需要的文件如.git、日志文件、缓存文件等
.git
*.log
  1. 执行构建时尽量选择仅包含必要构建文件的目录作为上下文,不要在包含大量无关大文件的目录下直接执行build操作。

内容的提问来源于stack exchange,提问作者Zabir Al Nazi Nabil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:36:01