Bad image layer state: cannot docker pull node:4

Expected behavior

I run docker pull node:4 and the layers are downloaded as normal.

Actual behavior

The command failed with output:

efd26ecc9548: Pull complete 
a3ed95caeb02: Pull complete 
d1784d73276e: Pull complete 
72e581645fc3: Pull complete 
9709ddcc4d24: Pull complete 
9df198b56120: Pull complete 
82e641bf31e2: Pull complete 
Digest: sha256:e10d0637c4242352de1b17b98037610d0eb24ba45569c5a5138466c022b114a0
Status: Downloaded newer image for node:4
Error response from daemon: Bad response from Docker engine

subsequent runs of docker pull node:4 are now failing with:

The command fails at the last extraction step with error:

efd26ecc9548: Already exists 
a3ed95caeb02: Download complete 
d1784d73276e: Already exists 
72e581645fc3: Already exists 
9709ddcc4d24: Already exists 
9df198b56120: Already exists 
82e641bf31e2: Extracting [==================================================>] 12.12 MB/12.12 MB
failed to register layer: rename /var/lib/docker/image/aufs/layerdb/tmp/layer-449695309 /var/lib/docker/image/aufs/layerdb/sha256/0b4e4581ca60a96bd440afa3815b869fdd405cc8c79fb75feabd513826d03806: directory not empty

Information

-  `pinata diagnose -u` on OSX
OS X: version 10.11.4 (build: 15E65)
Docker.app: version v1.11.0-beta8.2
Running diagnostic tests:
[OK]      docker-cli
[OK]      Moby booted
[OK]      driver.amd64-linux
[OK]      vmnetd
[OK]      osxfs
[OK]      db
[OK]      slirp
[OK]      menubar
[OK]      environment
[OK]      Docker
[OK]      VT-x
Docker logs are being collected into /tmp/20160426-115342.tar.gz
Most specific failure is: No error was detected
Your unique id is: 488A11F2-9ADC-4ECC-B7CF-7E73F3635BA1
Please quote this in all correspondence.

Additional

docker pull alpine or docker pull ubuntu work fine. The problem seems to be that the docker layers got into a bad state (extracted but not registered) and now there doesn’t seem to be any way to remove the layer. Is there a way to get shell access to the VM?

The workaround is to uninstall and reinstall docker for mac. After a reinstall docker pull node:4 works fine.

1 Like