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"!
Mihai
quelle
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.

Richard Corfield
quelle
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
18

Führen Sie aus docker rmi REPOSITORY:TAG, um das Tag zu entfernen.

Die Werte REPOSITORYund TAGstammen aus der docker imagesAusgabe.

Zum Beispiel

$ docker rmi my-image:0e5574283393
Untagged: my-image:0e5574283393
ashishjain
quelle
blog.tmtk.net/2013/09/16/how_to_remove_tag_on_docker.html . Dies kann Ihnen weiterhelfen
ashishjain
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
Travis Rennemann
quelle
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.

Nikolay
quelle
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