Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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
like image 632
adicara Avatar asked Oct 29 '15 17:10

adicara


1 Answers

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.

like image 187
Andy Avatar answered Sep 28 '22 16:09

Andy