Docker拉取错误:设备上没有剩余空间。

5
在执行docker pull时,我收到了以下错误信息:
Handler for POST /images/create returned error: ApplyLayer exit status 1 stdout: stderr: write XXXX: no space left on device 我检查了磁盘空间和Inodes,它们都足够。我尝试释放一些额外的空间和Inodes,但是错误总是出现在同一个文件上(这排除了潜在的空间问题)。
要拉取的镜像大小为约12Gb。
我尝试从另一台计算机导出镜像并将其导入到出问题的计算机上。然而,我仍然遇到“设备上没有剩余空间”的相同错误。
我尝试删除所有镜像,甚至完全删除/var/lib/docker,重新启动docker守护程序,但都没有成功。
我的电脑是MacBook 12.11,安装了ubuntu 14.02。
内核版本为:3.18.0-031800-generic #201412071935 SMP Mon Dec 8 00:36:34 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
docker版本为:Docker version 1.7.1, build 786b29d
docker信息为:
Containers: 2
Images: 85
Storage Driver: devicemapper
 Pool Name: docker-8:4-920131-pool
 Pool Blocksize: 65.54 kB
 Backing Filesystem: extfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 6.185 GB
 Data Space Total: 107.4 GB
 Data Space Available: 33.83 GB
 Metadata Space Used: 8.061 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.139 GB
 Udev Sync Supported: false
 Deferred Removal Enabled: false
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.82-git (2013-10-04)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.18.0-031800-generic
Operating System: Ubuntu 14.04.2 LTS
CPUs: 8
Total Memory: 15.58 GiB
Name: geb
ID: TTQN:73Y5:IU35:CK53:UELX:HPRQ:BKMM:ZNNM:O56G:6WL3:RZXE:NV4H
WARNING: No swap limit support

请确保检查运行您的Docker实例的虚拟机(即在Virtualbox中)的磁盘空间和inode,而不是您的主机机器(Macbook)。 - elixenide
没有虚拟机,他在MacBook上运行Linux。 - Karl Forner
1个回答

5

devicemapper 在不同内核和操作系统下给我带来了无数问题。这里有一些相关问题here

Jerome Petazzo提出了一些更广泛的建议 - 尽管BTRFS也存在/仍然存在严重问题,但它(以及DeviceMapper和Ubuntu 12.04上的AUFS)在以前的部署中已经被撤出生产环境。

我更喜欢的存储驱动程序是overlay,自内核3.18以来就可用(更多意见在这里表达):

Storage Driver: overlay
 Backing Filesystem: extfs

使用 (更多信息请参见此处) 更新 /etc/default/docker

DOCKER_OPTS="-s overlay"

请确保你只有一个DOCKER_OPTS - 这个文件不支持BASH语法,正如人们可能期望的那样。

编辑:我记得devicemapper修复方法是删除所有内容,然后重新启动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接