So entfernen Sie ein Image-Tag in Docker, ohne das Image selbst zu entfernen


134

Angenommen, ich möchte ein Docker-Bild markieren und einen Tippfehler machen. Wie entferne ich das Tag, ohne das Bild selbst zu entfernen? Weder in den Manpages noch in der Docker-Dokumentation wird das Entfernen von Tags erwähnt.

docker tag 0e5574283393 my-imaj
docker tag 0e5574283393 my-image
# docker untag my-imaj # There is no "docker untag"!

4
Für diejenigen, die <none>getaggte Bilder entfernen möchten, foo/bar:<none>verwenden Sie docker images --digestsund docker rmi foo/bar@<digest>wie unter success.docker.com/KBase/…
Janaka Bandara

Antworten:


194

Wenn Ihr Bild mit mehr als einem Tag versehen ist, docker rmiwird das Tag entfernt, nicht jedoch das Bild.

Also in deinem Beispiel ...

# docker rmi my-imaj

... entfernt diesen Tag und belässt das Bild mit dem anderen richtigen Tag.


4
Vielen Dank. Ich wünschte, sie hätten dies in der Dokumentation erwähnt: - /
Mihai

2
Wenn der Tag, den ich entferne, der letzte ist, wird das Bild entfernt. Ich frage mich also, wie die Antwort auf die Frage im Thema lautet. Wie entferne ich das Tag und halte das Bild im Cache?
kub1x

4
Und die Antwort ist wie immer zu verwenden--help , sei nicht faul zu lesen. docker image remove --no-prune.. falls jemand interessiert ist.
kub1x

4
Das ist falsch, es hat einfach mein Bild entfernt. Glücklicherweise wusste Docker, dass ich bereits misstrauisch war und erstellte vorher ein Backup mit docker save.
user259412

2
Wenn die Antwort klar ist If your image is tagged with more than one tag..., sollte sie jedoch mit dem Befehl aus den Kommentaren aktualisiert werden, der erklärt, wie das letzte Tag entfernt wird, ohne das Bild zu entfernen.
BrainSlugs83


17

Importieren Sie ausgehend von einem leeren Docker-Repository ein Bild, indem Sie Folgendes eingeben:

#docker run hello-world

Führen Sie den docker imagesBefehl aus, um die Bilder aufzulisten. Das Ergebnis sollte so aussehen:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB

Jetzt erstellen wir ein Image-Tag namens v1, indem wir den folgenden docker tagBefehl ausführen :

#docker tag hello-world:latest hello-world:v1

Wenn wir den docker imagesBefehl ausführen, sehen wir unser neues Tag wie folgt:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB
hello-world         v1          7bc42cc48a84      4 weeks ago       316MB

Um ein bestimmtes Tag zu löschen (um die ursprüngliche Frage zu beantworten), führen Sie das Docker-rmi aus, hello-world:v1wobei v1 der Tag-Name ist. Die Ausgabe sieht folgendermaßen aus:

#docker rmi hello-world:v1
Untagged: hello-world:v1

Führen Sie den docker imagesBefehl aus, um die Bilder aufzulisten. Beachten Sie, dass das Image-Tag entfernt wurde:

REPOSITORY        TAG           IMAGE ID          CREATED           SIZE
hello-world       latest        7bc42cc48a84      4 weeks ago       316MB

Der am wenigsten zweideutige Ansatz, wenn auch 3 Jahre später. +1
bvj

0

Versehen Sie ein anderes Bild mit Ihrem Tag-Namen und danach wird Ihr Tag von Ihrem aktuellen Bild entfernt.


Willkommen bei ServerFault! Bitte erläutern oder fügen Sie einige Beispielschritte für Befehle hinzu. Lesen
Cory Knutson

Keine nützliche Antwort, wenn das Tag wie angegeben ein Tippfehler war, möchten Sie es auch nicht auf einem anderen Bild haben.
Ken Williams
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.