51 votes

échec du conteneur de redémarrage du docker: "déjà utilisé", mais il n'y a plus d'image docker

J'ai d'abord obtenu mon image docker nginx:

 docker pull nginx
 

Puis je l'ai commencé:

 docker run -d -p 80:80 --name webserver nginx
 

Puis je l'ai arrêté:

 docker stop webserver
 

Ensuite, j'ai essayé de le redémarrer:

 $docker run -d -p 80:80 --name webserver nginx
docker: Error response from daemon: Conflict. The container name "/webserver" is already in use by container 036a0bcd196c5b23431dcd9876cac62082063bf62a492145dd8a55141f4dfd74. You have to remove (or rename) that container to be able to reuse that name..
See 'docker run --help'.
 

Eh bien, c'est une erreur. Mais en fait, il n'y a plus rien dans la liste des conteneurs:

 docker container list
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
 

Pourquoi je redémarre l'image nginx a échoué? Comment le réparer?

100voto

Rao Points 14992

C'est parce que

  • vous avez utilisé --name de l'interrupteur.
  • le conteneur est arrêté et n'est pas supprimée

Vous trouvez qu'il est arrêté

docker ps -a

Il vous suffit de démarrer à l'aide de commande ci-dessous:

docker start webserver

EDIT: Alternatives Si vous souhaitez démarrer le conteneur avec la commande ci-dessous à chaque fois,

docker run -d -p 80:80 --name webserver nginx

ensuite, utilisez une des méthodes suivantes:

méthode 1: utiliser --rm switch c'est à dire, le conteneur est détruit automatiquement dès qu'il est arrêté

docker run -d -p 80:80 --rm --name webserver nginx

méthode 2: supprimer explicitement après l'arrêt du conteneur avant de lancer la commande que vous utilisez actuellement.

docker stop <container name>
docker rm <container name>

6voto

Neeraj Points 939

Comme le message d'erreur dit.

Vous devez supprimer (ou renommer) le conteneur, afin de pouvoir réutiliser ce nom

Cela vous laisse deux options.

  • Vous pouvez supprimer le conteneur en utilisant le nom de "serveur web" à l'aide de la commande

    docker rm 036a0bcd196c5b23431dcd9876cac62082063bf62a492145dd8a55141f4dfd74

et réessayer.

  • Ou vous pouvez utiliser un nom différent au cours de l'exécution de la commande. Ce n'est pas recommandé, que vous n'avez plus besoin que docker.

Il est préférable de supprimer les indésirables docker et de réutiliser le nom.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X