Erstellen Sie ein Docker-Image mit mehreren Tags


146

docker pull ubuntu wird ein Bild mit mehreren Tags erhalten.

Ist es möglich, mehrere Tags mit einer Docker-Datei wie dem Ubuntu zu erstellen ?

ubuntu                  13.10               9f676bd305a4        2 weeks ago         182.1 MB
ubuntu                  saucy               9f676bd305a4        2 weeks ago         182.1 MB
ubuntu                  raring              eb601b8965b8        2 weeks ago         170.2 MB
ubuntu                  13.04               eb601b8965b8        2 weeks ago         170.2 MB
ubuntu                  12.10               5ac751e8d623        2 weeks ago         161.4 MB
ubuntu                  quantal             5ac751e8d623        2 weeks ago         161.4 MB
ubuntu                  10.04               9cc9ea5ea540        2 weeks ago         183 MB
ubuntu                  lucid               9cc9ea5ea540        2 weeks ago         183 MB
ubuntu                  12.04               9cd978db300e        2 weeks ago         204.7 MB
ubuntu                  latest              9cd978db300e        2 weeks ago         204.7 MB
ubuntu                  precise             9cd978db300e        2 weeks ago         204.7 MB

Hier habe ich die Tags für verschiedene Inhalte benötigt. (Nicht der gleiche Inhalt mit mehreren Alias-Tags)


Antworten:


77

Sie können mit Dockerfiles keine Tags erstellen, aber Sie können über die Befehlszeile mehrere Tags für Ihre Bilder erstellen.

Verwenden Sie diese Option, um Ihre Bild-IDs aufzulisten:

$ docker images

Dann tag weg:

$ docker tag 9f676bd305a4 ubuntu:13.10
$ docker tag 9f676bd305a4 ubuntu:saucy
$ docker tag eb601b8965b8 ubuntu:raring
...

4
Der Hauptpunkt ist in Dockerfile, diese Befehle konnten nicht in Dockerfile geschrieben werden.
Daniel YC Lin

1
In dieser Antwort erfahren Sie, wie Sie die ID nicht manuell ermitteln müssen.
Jonathon Reinhart

434

Seit der Version 1.10 können Sie jetzt beim Erstellen mehrere Tags gleichzeitig hinzufügen:

docker build -t name1:tag1 -t name1:tag2 -t name2 .

Quelle: Fügen Sie die Möglichkeit hinzu, mehrere Tags mit Docker-Build hinzuzufügen


5
Ich denke, dies ist die richtigere Antwort für die Benutzerfreundlichkeit in einem Build-Prozess
Brasskazoo

Dies ist nicht richtig, da der Ubuntu-Tag für verschiedene Versionen, der Inhalt unterschiedlich ist.
Daniel YC Lin

2
Wie kann ich diese Tags nach einem Push im Repository anzeigen lassen? Leider erscheint im Repo nur der, den ich im Push-Befehl verwende.
Czechnology

3
Selbst am Ende 2018 Docker noch unglaublich unreif in dieser Hinsicht ist, jeder ‚Tag‘ muss noch separat geschoben wird trotz auf das gleiche Bild angehängt werden. Was hier benötigt wird, sind einige Funktionen, die Git-Tags ähneln.
Ed Randall

-8

Wie man es nicht macht:

Wenn Sie ein Bild erstellen, können Sie es auch auf diese Weise markieren.

docker build -t ubuntu:14.04 .

Dann erstellen Sie es erneut mit einem anderen Tag:

docker build -t ubuntu:latest .

Wenn Ihre Docker-Datei den Cache gut nutzt, sollte dasselbe Bild ausgegeben werden, und dies funktioniert effektiv genauso wie das erneute Markieren desselben Bildes. Wenn Sie dies tun, werden docker imagesSie sehen, dass sie die gleiche ID haben.

Es gibt wahrscheinlich einen Fall, in dem dies schief geht ... Aber wie @ david-braun sagte, können Sie mit Dockerfiles selbst keine Tags erstellen, nur mit dem Docker-Befehl.


3
Ich könnte hinzufügen, dass es sauberer ist, es wie @ david-braun zu machen.
Maniok

14
Baue nicht zweimal. Siehe diese Antwort .
Jonathon Reinhart

zweimal bauen besiegt den Begriff CI / CD ... die zweite Kompilierung kann je nach Abhängigkeit unterschiedlich sein ... alles hängt vom Timing ab.
Richard

4
Mit der klaren Überschrift "Wie man es nicht macht" trägt diese Antwort nun etwas zum Verständnis der Funktionsweise bei.
Ed Randall
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.