Docker --tag vs --name Klärung

8

Ich bin ziemlich neu in Docker und ich bin ein wenig verwirrt über den Unterschied zwischen Tag (Tag) ein Bild und vergeben Sie einen Namen (--name). Zum Beispiel kann ich sehen, dass ich, wenn ich mein benutzerdefiniertes Bild aus einer Docker-Datei zusammenstelle, es mit einem Namen versehen kann:

%Vor%

Übergeben des Namens an docker inspect ergibt ein Ergebnis:

%Vor%

Es enthält jedoch nicht die gleichen Attribute eines "benannten" Bildes:

%Vor%

"

Jemand, um etwas Licht darauf zu werfen? Danke!

    
Carla 07.01.2017, 10:52
quelle

2 Antworten

10

Ich denke, du hast hier zwei Begriffe gemischt, was die Verwirrung verursacht. Auf der einen Seite gibt es ein Docker-Bild, das Sie sich als Vorlage zum Starten eines Containers vorstellen können. Auf der anderen Seite gibt es Container, die Instanzen ausführen, die auf einem Image basieren.

Wenn Sie docker build -t tagname . erstellen, erstellen Sie normalerweise ein Bild und versehen es mit dem Format "name: tag". So erstellen Sie beispielsweise Ihr Bild als

%Vor%

erstellt ein neues Bild mit dem Namen myimage mit Version von 1.0 . Dies sehen Sie, wenn Sie docker images ausführen.

Der Parameter --name wird dann verwendet, wenn Sie einen neuen Container basierend auf Ihrem Bild erstellen und starten. So führen Sie beispielsweise einen neuen Container mit dem folgenden Befehl aus:

%Vor%

Dies erstellt einen neuen Container basierend auf Ihrem Image myimage . Diese Containerinstanz heißt mycontainerinstance . Sie können dies sehen, wenn Sie docker ps -a ausführen, wodurch der Container mit dem Containernamen mycontainerinstance aufgelistet wird.

Um den Unterschied besser zu verstehen, sehen Sie sich die Dokumentation für an Erstellen eines Bildes und Ausführen eines Containers , ein Bild angeben . Beim Lesen der Dokumente werden Sie feststellen, welche Befehle auf ein Bild und welche Befehle auf Container gerichtet sind. Sie werden auch sehen, dass es Befehle gibt, die für Bilder und Container funktionieren, wie docker inspect .

Die Überprüfung auf eine Netzwerkadresse funktioniert natürlich nur, wenn Sie einen Containernamen und kein Bild angeben. In Ihrem speziellen Fall hat der Container einen generierten Namen, den Sie sehen können, indem Sie docker ps -a ausführen. Wenn Sie dem Befehl docker inspect diesen Namen geben, werden Sie wahrscheinlich die gewünschte IP-Adresse sehen.

    
Andreas Jägle 07.01.2017, 11:50
quelle
6

Sie kennzeichnen ein Bild

%Vor%

Sie weisen einem Container jedoch einen Namen zu

%Vor%

Sie können Bildern mehrere Tags zuweisen, z. B.

%Vor%

Wenn Sie Bilder auflisten, erhalten Sie eine Zeile pro Tag, aber sie beziehen sich auf die gleiche Bild-ID:

%Vor%

Sie können Bilder auch ein zweites Mal taggen, nicht nur wenn Sie sie erstellen, damit Sie verschiedene Bildversionen behalten können.

Wenn Sie einen Container basierend auf einem bestimmten Bild ausführen, können Sie ihm einen Namen zuweisen, sodass Sie ihn mithilfe des Namens anstatt mithilfe der containerId beziehen können.

Offensichtlich erhalten Sie andere Attribute, indem Sie Bilder und Behälter untersuchen. Ich denke, es ist klarer, wenn Sie einen anderen Namen für Bild-Tag und Container-Namen verwenden, z. B.

%Vor%     
gile 07.01.2017 11:53
quelle

Tags und Links