首页 > 解决方案 > docker build 命令占用了所有空间

问题描述

我错误地docker build在一个带有 dockerfile 的文件夹中运行命令,其中几乎没有包含数百个文件的大型文件夹。

folder_1 (55 gigs)
folder_2 (182 gigs)
kaldi_ub18_cuda10.Dockerfile

在这个文件夹中,我运行了命令, nvidia-docker build -t nabil/kaldi_sre:ub18cu10 . -f kaldi_ub18_cuda10.Dockerfile

在那之后,我得到了 docker sending build context to docker daemon 91gb/237gb

不幸的是,我的根目录中只有大约 90 个免费演出/

之后,命令停止,它显示我没有足够的空间。

现在,当我运行时df -h --total,我看到我/的空间为 0。

udev             94G     0   94G   0% /dev
tmpfs            19G  212M   19G   2% /run
/dev/sda6       1.7T  1.7T     0 100% /
tmpfs            94G  1.8G   92G   2% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            94G     0   94G   0% /sys/fs/cgroup
/dev/sdb1       1.8T  1.5T  213G  88% /home/tit/Data
/dev/sda1       453M  446M     0 100% /boot
tmpfs            19G   24K   19G   1% /run/user/108
tmpfs            19G     0   19G   0% /run/user/1000
/dev/loop3       27M   27M     0 100% /snap/heroku/4068
/dev/loop1       27M   27M     0 100% /snap/heroku/4076
/dev/loop2      100M  100M     0 100% /snap/core/11743
/dev/loop4      100M  100M     0 100% /snap/core/11798
total           3.8T  3.1T  549G  86% -

输出自/var/lib/docker

:/var/lib/docker$ sudo du -h --max-depth=1 | sort
180K    ./network
182G    ./tmp
205G    ./overlay2
20K     ./builder
20K     ./plugins
386G    .
4.0K    ./runtimes
4.0K    ./swarm
4.0K    ./trust
509M    ./containers
53M     ./image
72K     ./buildkit
72K     ./volumes

我不确定发生了什么占用了我所有的空间。我试过docker system prune了,但它没有给我空间。

我无法重新启动服务器,因为上面运行了许多应用程序。我怎样才能得到空间?

标签: dockerubuntudockerfile

解决方案


运行docker system prune --all --force是一个好的开始(文档)。

如评论中所见,请注意它也会删除 docker 图像。

然后,你能检查一下你的/var/lib/docker/tmp目录吗:

  • 应该可以安全地清洁其内容。
  • 需要root权限
  • 根据您的构建上下文在构建过程中使用

    在你的情况下有大量的文件。

  • 如果 docker 在该目录中保存文件:
# Assuming your system uses systemd
systemctl stop docker
rm -r /var/lib/docker/tmp/*
systemctl start docker

您可以像这样检查可用的磁盘空间:

cd /var/lib/docker
du -h --max-depth=1 | sort

推荐阅读