docker 构建命令占用了所有 space

docker build command took all of the space

我错误地 运行, 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 个免费演出。

在那之后,命令停止了,它显示我还不够space。

现在,当我 运行 df -h --total 时,我看到我的 / 有 0 space。

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

我不确定发生了什么事耗尽了我的所有 space。我试过 docker system prune,但没有给我 space.

我无法重新启动服务器,因为上面有很多应用程序 运行ning。我怎样才能得到 space?

运行 docker system prune --all --force 是一个好的开始 (documentation).

As seen in comment, be aware it will delete docker images too.

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

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

    with gigs of files in your case.

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

您可以像这样检查可用磁盘 space :

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

文件应在 /var/lib/docker/tmp 中。从此目录中删除文件后,我建议重新启动 docker 引擎 (systemctl restart docker),以防引擎打开该目录中文件的文件句柄,或任何 运行 需要文件的文件在那里存在。

如果您使用的是 buildkit,我还建议:

docker builder prune