docker - 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
了,但它没有给我空间。
我无法重新启动服务器,因为上面运行了许多应用程序。我怎样才能得到空间?
解决方案
运行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
推荐阅读
- sqlite - SQLite3 最近的时间戳
- java - Java LocalDate 不接受所有 EpochDay 字段有效值
- angular - 更改嵌套对象的属性值 Angular 4+
- string - 数据框中字符串的长度
- php - 重新格式化时间戳
- java - Java @Remote 和编组实体
- terraform - Terraform - 使用本地命令结果作为 tf 文件的变量
- sublimetext3 - Sublime Text 3 Find - 突出显示所有结果,而不是白色轮廓
- javascript - 如何将对象数组中字段的值复制到另一个数组中
- java - memcache 究竟是如何删除过期数据的?