我正在尝试建立一个docker映像(使用我的Dockerfile),我得到一个非常奇怪的错误关于下载目录空间不足:
Total download size: 208 k
Installed size: 760 k
Downloading packages:
Error downloading packages:
libyaml-0.1.4-11.el7_0.x86_64: Insufficient space in download directory /var/cache/yum/x86_64/7/centos/packages
* free 0
* needed 55 k
PyYAML-3.10-11.el7.x86_64: Insufficient space in download directory /var/cache/yum/x86_64/7/centos/packages
* free 0
* needed 153 k
The command '/bin/sh -c yum -y install python-yaml' returned a non-zero code: 1
我使用的是centos7基础图像
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 106M 1.5G 7% /run
/dev/sda1 118G 112G 0 100% /
tmpfs 7.9G 648K 7.9G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sdb1 92G 206M 87G 1% /boot
tmpfs 1.6G 56K 1.6G 1% /run/user/1001
下面的docker
命令是为我修复底层错误的技巧:
$ docker rm $(docker ps -qa)
对我来说,跑步:
docker image prune
做到了。结果发现我有很多垃圾(也就是悬挂的)图像占用了空间。prune
文档可以在这里找到
检查并确保/var目录有足够的空间,因为这是docker
存储其映像的地方。
设置:df -h /var
如果是100%,你可能需要清理一些空间。
docker ps -a
-列出所有容器(包括已停止和已退出的容器)。使用docker rm {CONTAINER_ID}
来释放一些空间
或者执行docker images
来删除未使用的图像。docker rmi {IMAGE_ID}
.
您需要检查空格最初被使用的位置
du -h /var | grep -E ‘^[0-9.]*[M|G]’
如果某个特定目录占用了太多空间,检查如何正确删除它。而你做到了。
您曾经没有删除过docker容器或映像吗?通常是空间不足的根本原因。
通过以下命令检查。
du -hs /var/lib/docker
如果目录空间太大,您可以在下面解决docker命令。
移除所有容器,
docker rm $(docker ps -qa)
删除所有镜像,
docker rmi $(docker image ls -qa)
但原因可能不是docker,比如大的日志文件或rpm缓存和一些大文件。然后你可以删除文件。
下面的命令适用于我:
docker system prune
这将允许您修剪所有悬空的图像,悬空的构建缓存,未使用的网络。