拉取镜像时设备上没有剩余空间

问题描述 投票:0回答:8

在 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
8个回答
49
投票

如果您在 OSX(或类似版本)上使用 Docker Desktop,您可以通过访问首选项、增加基本映像大小并单击“应用并重新启动”来解决此问题


26
投票

您可以使用此命令查看是否有隐藏图像。

docker image ls -a

如果你想删除所有它们,你可以使用这个命令:

docker rmi -f $(docker image ls -a -q)

您知道有时图像文件存储在硬盘中,然后会导致容量不足。


16
投票

您将需要删除所有已停止的容器以及所有未由任何容器使用的卷和网络。它还将删除所有悬挂的图像。

docker system prune

13
投票

我今天遇到了这个错误。

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

3
投票

我也面临着同样的问题。但解决了这个问题:

通过

docker system df
命令,我检查了图像大小,它显示为 104 MB,因此出现错误“设备上没有剩余空间”。

然后我只是通过设置重新启动了 docker,并再次通过

docker system df
检查,现在它显示的是 GB 大小。


1
投票

我最近遇到了类似的问题,这是因为我有很多悬空的、未被任何容器使用的图像,这些图像占用了大量的磁盘空间。要删除它们,我使用了以下命令:

sudo docker image prune -a

0
投票

错误是因为挂载卷的原因,执行以下命令

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


0
投票

感谢您的命令。对我很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.