Docker拉错误:设备

时间:2015-10-29 17:42:47

标签: macos ubuntu docker

在执行docker pull时,我收到此错误消息

  

POST / images / create处理程序返回错误:ApplyLayer退出状态   1 stdout:stderr:写XXXX:设备上没有剩余空间

我检查了磁盘空间和Inodes,我有足够的空间。无论如何我试着释放一些额外的空间和inode。尽管如此,错误总是落在同一个文件上(排除了潜在的空间问题)。

要拉的图像是~12Gb

  

文件系统Inodes IUsed IFree IUse%挂载在/ dev / sda4上   3,0M 295K 2,7M 10%/

     

使用的文件系统大小可用在/ dev / sda4上安装%   47G 15G 30G 34%/

我尝试从另一台计算机导出图像并将其导入计算机导致问题。但是我得到了“设备上没有剩余空间”的相同错误

我尝试删除所有图像,甚至完全删除/ var / lib / docker,重新启动docker守护程序,没有任何运气。

在安装了ubuntu 14.02的MacBook 12.11上运行。

  

内核:   3.18.0-031800-generic#201412071935 SMP Mon Dec 8 00:36:34 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux

docker version

  

Docker 1.7.1版,build 786b29d

码头信息

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

1 个答案:

答案 0 :(得分:5)

devicemapper在各种不同的内核和操作系统中引起了无数问题。问题here

杰罗姆·佩塔佐有一些broader recommendations - 虽然BTRFS也有/持续serious问题,但在以前的部署中已经从生产中撤出了(以及Ubuntu 12.04上的DeviceMapper和AUFS)。

我对存储驱动程序的偏好是overlay,这可以从内核3.18开始提供(进一步的意见expressed here):

Storage Driver: overlay
 Backing Filesystem: extfs

使用(more here)更新/etc/default/docker

DOCKER_OPTS="-s overlay"

(确保您只有一个DOCKER_OPTS - 该文件不支持BASH语法,如人们所期望的那样)

编辑:我似乎记得设备管理器修复程序是删除所有内容,然后重新启动。