J'ai d'abord eu mon image de docker nginx:
docker pull nginx
Puis j'ai commencé:
docker run -d -p 80:80 --name webserver nginx
Puis je l'ai arrêté:
docker stop webserver
Puis 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 rien dans la liste des conteneurs maintenant:
docker container list
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Pourquoi je redémarre l'image nginx a échoué? Comment le réparer?
C'est parce que
--name
_ commutateur.Vous trouvez cela arrêté
docker ps -a
Vous pouvez simplement le démarrer en utilisant la commande ci-dessous:
docker start webserver
EDIT: Alternatives Si vous voulez démarrer le conteneur avec la commande ci-dessous à chaque fois,
docker run -d -p 80:80 --name webserver nginx
puis utilisez l'un des éléments suivants:
méthode 1: utilise --rm
switch i.e., 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: le supprime explicitement après avoir arrêté le conteneur avant de lancer la commande en cours d'utilisation.
docker stop <container name>
docker rm <container name>
Comme le dit l'erreur.
Vous devez supprimer (ou renommer) ce conteneur pour pouvoir réutiliser ce nom.
Cela vous laisse deux options.
Vous pouvez supprimer le conteneur qui utilise le nom "webserver" en utilisant la commande
docker rm 036a0bcd196c5b23431dcd9876cac62082063bf62a492145dd8a55141f4dfd74
et réessayez.
Il est préférable de supprimer le menu fixe indésirable et de réutiliser le nom.