5

When I start a docker image with a specified name docker reports the name has already been taken by an already running docker container. I cannot find that container by looking at docker ps -a, nor can I remove it referencing it by the id or name. How can I find the conflicting running container? How do I debug this situation futher?

myuser@myhostname$ docker --version
Docker version 1.11.2, build b9f10c9
myuser@myhostname$ docker run --name=myimage-build ubuntu
docker: Error response from daemon: Conflict. The name "/myimage-build" is already in use by container 946747f7608fb17e8f1677152e44a21aeb9f4d3cfda9b30bc7cd7a92411e533e. You have to remove (or rename) that container to be able to reuse that name..
See 'docker run --help'.
myuser@myhostname$ docker ps -a | grep 9467
myuser@myhostname$ 
myuser@myhostname$ docker rm -f 946747f7608fb17e8f1677152e44a21aeb9f4d3cfda9b30bc7cd7a92411e533e
Error response from daemon: No such container: 946747f7608fb17e8f1677152e44a21aeb9f4d3cfda9b30bc7cd7a92411e533e
myuser@myhostname$ docker rm -f myimage-build
Error response from daemon: No such container: myimage-build
myuser@myhostname$ 
myuser@myhostname$ docker run --name=myimage-build ubuntu
docker: Error response from daemon: Conflict. The name "/myimage-build" is already in use by container 946747f7608fb17e8f1677152e44a21aeb9f4d3cfda9b30bc7cd7a92411e533e. You have to remove (or rename) that container to be able to reuse that name..
See 'docker run --help'.
Wojtek
  • 1,410
  • 2
  • 16
  • 31
  • What is your host os & docker version? – Rao Nov 02 '16 at 14:22
  • What is the result of `docker inspect --format='{{.Name}}' $(sudo docker ps -aq --no-trunc)`? [This](http://stackoverflow.com/questions/16840409/how-do-you-list-containers-in-docker-io) should help you. – Rao Nov 02 '16 at 14:33
  • If you don't mind, try to stop / remove all of Docker containers for a clean environment ```docker stop $(docker ps -a -q)``` ```docker rm $(docker ps -a -q)``` – Hy L Nov 08 '16 at 02:27

2 Answers2

-1

Rao

I work in the same team as Wojtek.

I run the docker inspect you suggested:

docker inspect --format='{{.Name}}' $(docker ps -aq --no-trunc)
/an-unrelated-app

Doesn't seem to be there.

-1

you could extract it from log:

    #save log to var
    res=$(docker-compose --ansi never up -d  2>&1)
    #check if logs contain error message
    error_msg="is already in use by container"
    if [[ "$res" == *$error_msg* ]];then
        container_id=$(echo $res | sed -r "s/.*$error_msg \"(.*)\".*/\1/g")
        echo "removing container_id: $container_id"
        docker rm $container_id
    fi

another way could be: if you don't mind delete all container to avoid conflict, use:

docker rm $(docker ps -a -q)
Adán Escobar
  • 1,729
  • 9
  • 15