简体   繁体   中英

Docker pull error: no space left on device

While doing a docker pull I get this error message

Handler for POST /images/create returned error: ApplyLayer exit status 1 stdout: stderr: write XXXX: no space left on device

I checked the disk space and the Inodes and I have enough of them. I tried anyway to free some additional space and inodes. Despite this the error falls always on the same file (which rules out a potential space problem).

The image to pull is ~12Gb

Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda4
3,0M 295K 2,7M 10% /

Filesystem Size Used Avail Use% Mounted on /dev/sda4
47G 15G 30G 34% /

I tried exporting the image from another computer and importing it on the computer causing problems. However I get the same error of 'no space left on device'

I tried removing all images, even deleting completely /var/lib/docker, restarting the docker daemon, without any luck.

Running on MacBook 12.11 with ubuntu 14.02 installed.

kernel: 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 version 1.7.1, build 786b29d

docker info

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

devicemapper has caused me innumerable problems across various different kernels and OSs. Issues here .

Jerome Petazzo has some broader recommendations - although BTRFS also had/has ongoing serious issues, that has got it (and DeviceMapper, and AUFS on Ubuntu 12.04) pulled from production in previous deployments.

My preference for storage drivers is overlay , which is available since kernel 3.18 (further opinions expressed here ):

Storage Driver: overlay
 Backing Filesystem: extfs

Update /etc/default/docker with ( more here ):

DOCKER_OPTS="-s overlay"

(ensure you only have one DOCKER_OPTS - that file doesn't support BASH syntax as one may expect)

edit: I seem to recall the devicemapper fix is to delete everything as you have done, and reboot.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM