在 Windows 10 Build 14393 下使用 Docker 1.13.0 (9795),当我尝试运行最新的 python 映像(即 3.6)时,我收到“设备上没有剩余空间”的信息:
> docker run -it python
Unable to find image 'python:latest' locally
latest: Pulling from library/python
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
52f3db4b5710: Extracting [==================================================>] 129.8 MB/129.8 MB
45b2a7e03e44: Download complete
75ef15b2048b: Download complete
e41da2f0bac3: Download complete
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: failed to register layer: Error processing tar file(exit status
1): write /usr/share/doc/libfreetype6/reference/ft2-type1_tables.html: no space left on device.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
硬盘上有超过 20 GB 的可用空间,因此我认为问题出在 Docker 的虚拟机内部。如何访问它以调查磁盘使用情况并根据需要进行清理?
docker images
和docker ps -a
没有识别出任何大的东西:
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest f49eec89601e 2 days ago 129 MB
d4w/nsenter latest 9e4f13a0901e 4 months ago 83.8 kB
> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae1e7c7b11ed ubuntu "/bin/bash" 10 minutes ago Exited (0) 9 minutes ago quirky_rosalind
单独拉动没有帮助:
> docker pull python
Using default tag: latest
latest: Pulling from library/python
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
52f3db4b5710: Extracting [==================================================>] 129.8 MB/129.8 MB
45b2a7e03e44: Download complete
75ef15b2048b: Download complete
e41da2f0bac3: Download complete
failed to register layer: Error processing tar file(exit status 1): write /usr/bin/g++-4.9: no space left on device
您可以使用此命令查看是否有隐藏图像。
docker image ls -a
如果你想删除所有它们,你可以使用这个命令:
docker rmi -f $(docker image ls -a -q)
您知道有时图像文件存储在硬盘中,然后会导致容量不足。
您将需要删除所有已停止的容器以及所有未由任何容器使用的卷和网络。它还将删除所有悬挂的图像。
docker system prune
我今天遇到了这个错误。
docker prune
、docker rmi ...
、df -h
、df -ih
等可能不错,但原因是 docker devicemapper Base Device Size 。
docker info
命令给出了相关信息。
我参考this以获得完整的解释。
但是,这些步骤可以解决问题:
systemctl stop docker.service
dockerd --storage-opt dm.basesize=20G
(you should terminate the command with Ctrl+C)
service start docker
我也面临着同样的问题。但解决了这个问题:
通过
docker system df
命令,我检查了图像大小,它显示为 104 MB,因此出现错误“设备上没有剩余空间”。
然后我只是通过设置重新启动了 docker,并再次通过
docker system df
检查,现在它显示的是 GB 大小。
我最近遇到了类似的问题,这是因为我有很多悬空的、未被任何容器使用的图像,这些图像占用了大量的磁盘空间。要删除它们,我使用了以下命令:
sudo docker image prune -a
错误是因为挂载卷的原因,执行以下命令
df -h
在docker中检查overlay挂载目录
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.7G 0 3.7G 0% /dev
tmpfs 3.7G 16K 3.7G 1% /dev/shm
tmpfs 3.7G 33M 3.7G 1% /run
tmpfs 3.7G 0 3.7G 0% /sys/fs/cgroup
/dev/mapper/VolGroup00-rootVol 10G 2.3G 7.8G 23% /
/dev/nvme0n1p1 1014M 334M 681M 33% /boot
/dev/mapper/VolGroup00-homeVol 3.0G 33M 3.0G 2% /home
/dev/mapper/VolGroup00-varVol 4.0G 3.5G 588M 86% /var
/dev/mapper/VolGroup00-tmpVol 2.0G 58M 2.0G 3% /tmp
/dev/mapper/VolGroup00-logVol 4.0G 36M 4.0G 1% /var/log
/dev/mapper/VolGroup00-auditVol 4.0G 98M 3.9G 3% /var/log/audit
/dev/mapper/VolGroup00-vartmpVol 2.0G 33M 2.0G 2% /var/tmp
tmpfs 753M 0 753M 0% /run/user/1000
overlay 4.0G 3.5G 588M 86% /var/lib/docker/overlay2/82b544ac4a868c7f3c0180c4751e73084f64785c379362bf0fcf6c07f36cb36e/merged
tmpfs 753M 0 753M 0% /run/user/0
感谢您的命令。对我很有帮助。