Das Ausführen der docker
Registrierung mit dem folgenden Befehl löst immer einen Fehler aus:
dev:tmp me$ docker run \
-d --name registry-v1 \
-e SETTINGS_FLAVOR=local \
-e STORAGE_PATH=/registry \
-e SEARCH_BACKEND=sqlalchemy \
-e LOGLEVEL=DEBUG \
-p 5000:5000 \
registry:0.9.1
Error response from daemon: Conflict. The name "registry-v1" is already in use by container f9e5798a82e0. You have to delete (or rename) that container to be able to reuse that name.
Wie kann dieser Fehler verhindert werden?
docker ps -a
in diesem Fall auch wichtig, alle Container zu sehen.docker start -a container-name
ist der Befehl, mit dem Sie einen Container starten können, mit dem erstellt wurdedocker run
. Beachten Sie die-a
Flagge, für die die Abkürzung steht--attach
. Auf diese Weise wird der Container im Vordergrund gestartet, genau wie bei der Verwendungdocker run
(die standardmäßig einen Container im Vordergrund ausführt).docker create
ein Container erstellt , aber nicht ausgeführt wird.Das heißt, Sie haben bereits in der Vergangenheit einen Container mit dem Parameter gestartet
docker run --name registry-v1 ...
.Sie müssen dies zuerst löschen, bevor Sie einen gleichnamigen Container mit neu erstellen können
docker rm registry-v1
. Wenn dieser Container noch läuft, müssen Sie ihn zuerst stoppen, bevor Sie ihn mit löschen könnendocker stop registry-v1
. Oder wählen Sie einfach einen anderen Namen für den neuen Container.Um eine Liste der vorhandenen Container und ihrer Namen zu erhalten, rufen Sie einfach auf
docker ps -a
.quelle
docker rm $(docker ps -aq --filter name=myContainerName)
docker rm myContainerName
?Hier, was ich getan habe, funktioniert es gut.
Schritt 1: (Docker-Container mit seinem Namen aufgelistet)
Schritt 2:
quelle
Nur um zu erklären, was andere sagen (ich habe einige Zeit gebraucht, um zu verstehen), heißt das einfach: Wenn Sie diesen Fehler sehen, bedeutet dies, dass Sie bereits einen Container haben und ihn ausführen müssen. Während es intuitiv ausgeführt
docker run
werden soll, tut es dies nicht. Mit dem Befehldocker run
wird nur ein Container zum ersten Mal gestartet . Um einen vorhandenen Container auszuführen, benötigen Sie Folgendesdocker start $container-name
. Soviel dazu, Entwickler zu bitten, sinnvolle / intuitive Befehle zu erstellen.quelle
Sie haben 2 Möglichkeiten, um dies zu beheben ...
Entfernen Sie den vorherigen Container unter diesem Namen mit dem Befehl
docker rm $(docker ps -aq --filter name=myContainerName)
ODER
--name registry-v1
in einen ähnlichen Namen--name myAnotherContainerName
Sie erhalten diesen Fehler, weil dieser Containername (dh
registry-v1
) in der Vergangenheit von einem anderen Container verwendet wurde ... obwohl dieser Container möglicherweise beendet wurde (dh derzeit nicht verwendet wird).quelle
Wenn Sie ein neues Image erstellen, möchten Sie häufig jedes Mal einen neuen Container mit demselben Namen ausführen. Ich fand, der einfachste Weg war, den Container mit der Option --rm zu starten :
z.B
Leider wird es in den Beispielen aus den Dokumenten fast zufällig verwendet
quelle
--rm
. Es wird nicht neu gestartet.--rm
nur, wenn Sie den Container mit--rm
flag erstellt haben. Das heißt, wenn Sie den Container ohne--rm
Flag erstellt haben, müssen Sie ihn manuell entfernen, bevor Sie den Vorteil desrm
Flags nutzen können.Ursache
Ein gleichnamiger Container ist noch vorhanden.
Lösung
Um denselben Containernamen wiederzuverwenden, löschen Sie den vorhandenen Container wie folgt:
Erläuterung
Container können in folgenden Zuständen vorhanden sein, in denen der Containername nicht für einen anderen Container verwendet werden kann:
created
restarting
running
paused
exited
dead
Sie können Container im
running
Status anzeigen, indem Sie Folgendes verwenden:Verwenden Sie: Um Container in allen Status anzuzeigen und herauszufinden, ob ein Containername verwendet wird:
quelle
Hier ist, wie ich dies auf Ubuntu 18 gelöst habe:
$ sudo docker ps -a
Für jeden Container tun Sie:
$ sudo docker stop container_ID
$ sudo docker rm container_ID
quelle
Sie können es mit dem Befehl entfernen
sudo docker rm YOUR_CONTAINER_ID
und dann einen neuen Container mit ausführensudo docker run ...
. oder starten Sie einen vorhandenen Container mit neusudo docker start YOUR_CONTAINER_ID
quelle
Ich habe das Problem durch die folgenden Schritte gelöst und hoffe, dass es hilft.
docker ps -a
um alle Container in Ihrem System aufzulisten.docker rm --force name_of_container
Ich hatte Probleme mit NIFI und habe Docker entfernt und neu installiert. Viel Glück.
quelle
Ich lerne gerade Docker und das hat mich auch erwischt. Ich habe den Container mit diesem Namen bereits gestoppt und dachte daher, ich könnte einen neuen Container mit diesem Namen ausführen.
Nicht der Fall. Nur weil der Container gestoppt ist, heißt das nicht, dass er nicht erneut gestartet werden kann und alle Parameter beibehalten werden, mit denen er erstellt wurde (einschließlich des Namens).
als ich rannte
docker ps -a
, sah ich alle Dummy-Testcontainer, die ich beim Herumspielen erstellt hatte.Kein Problem, da ich diese nicht mehr will, habe ich gerade getan,
docker rm containername
zu welchem Zeitpunkt mein neuer Container mit dem alten Namen ausgeführt werden durfte.Ah, und jetzt, wo ich mit dem Schreiben dieser Antwort fertig bin, sehe ich Slawosz 'Kommentar zu Walt Howards Antwort oben, der die Verwendung von vorschlägt
docker ps -a
quelle