Docker: how to fix “Layer already being pulled by

2019-04-25 16:48发布

问题:

I have a fresh install using boot2docker. (DockerToolbox was giving me the same error. After uninstalling DockerToolbox, I deleted ~/.docker and searched my whole filesystem for anything starting with "docker" and found no other configuration files where things might be hiding.)

This is the second command I did, after docker run hello-world:

bash-3.2$ docker run -it ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6071b4945dcf: Verifying Checksum 
5bff21ba5409: Pulling fs layer 
e5855facec0b: Download complete 
8251da35e7a7: Download complete 
8251da35e7a7: Layer already being pulled by another client. Waiting. 

And I'm stuck here indefinitely.

I promise I only have 1 docker process running. I just want to get past this. If it means nuking whatever cache is in place and doing a manual download, that's okay. I just want to stop being stuck here for hours.

回答1:

You need to restart Docker service or just restart the OS. Also in this issue @avramirez pointed out that you can do this using boot2docker:

boot2docker stop
boot2docker up

docker pull <repo>


回答2:

quote from issue#15603 message:

Hello all! I believe this should by fixed on master by #15489 (and will soon ship in a few weeks as part of Docker 1.9.0).



回答3:

This is a bug in Docker.

Try out the following in order (Trying to avoid restarting the OS):

  1. ps aux | grep docker-compose and find the PID of docker-compose processes running.
    Kill them using kill <pid>
  2. Restart Docker using service docker restart (linux)
  3. 2nd method should ideally solve the problem, if not, Restart the OS.

Hopefully, this issue will be solved in version 1.9