Wie man den docker image tag-Befehl verwendet, um Image-Aliase zu verwalten

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Docker-Image-Aliase effektiv mit dem Befehl docker image tag verwalten können. Wir beginnen damit, die Struktur und die Bestandteile von Docker-Image-Referenzen zu verstehen, die für die Identifizierung und Lokalisierung bestimmter Image-Versionen unerlässlich sind.

Nachdem Sie die Grundlagen der Image-Referenzen verstanden haben, erhalten Sie praktische Erfahrungen beim Taggen von Images mit verschiedenen Methoden: anhand ihrer ID, anhand ihres bestehenden Namens und anhand ihrer Namens- und Tag-Kombination. Abschließend lernen Sie, wie Sie ein Image speziell für die Verwendung mit einer privaten Docker-Registrierung taggen können, damit Sie Images von benutzerdefinierten Speicherorten pushen und pullen können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/pull -.-> lab-555163{{"Wie man den docker image tag-Befehl verwendet, um Image-Aliase zu verwalten"}} docker/tag -.-> lab-555163{{"Wie man den docker image tag-Befehl verwendet, um Image-Aliase zu verwalten"}} docker/images -.-> lab-555163{{"Wie man den docker image tag-Befehl verwendet, um Image-Aliase zu verwalten"}} end

Docker-Image-Referenzen verstehen

In diesem Schritt lernen wir etwas über Docker-Image-Referenzen. Eine Docker-Image-Referenz ist ein Name, der auf eine bestimmte Version eines Docker-Images verweist. Sie sagt Docker, welches Image Sie verwenden möchten, wenn Sie einen Container starten oder andere Image-bezogene Operationen ausführen.

Eine vollständige Image-Referenz besteht typischerweise aus mehreren Teilen:

[registry_hostname[:port]/]image_name[:tag]

Lassen Sie uns diese Teile aufschlüsseln:

  • registry_hostname[:port]: Dies ist der Hostname und optional der Port der Docker-Registrierung, in der das Image gespeichert ist. Wenn dieser Teil weggelassen wird, verwendet Docker standardmäßig Docker Hub (docker.io).
  • image_name: Dies ist der Name des Images. Er kann einen Namespace enthalten (z. B. library/ubuntu oder myuser/myapp). Wenn für offizielle Images auf Docker Hub kein Namespace angegeben wird, wird der library/-Namespace impliziert (z. B. ist ubuntu äquivalent zu library/ubuntu).
  • tag: Dies ist ein optionaler Tag, der eine bestimmte Version oder Variante des Images angibt. Wenn kein Tag angegeben wird, verwendet Docker standardmäßig den latest-Tag.

Schauen wir uns einige Beispiele an:

  • ubuntu: Dies bezieht sich auf den latest-Tag des offiziellen ubuntu-Images auf Docker Hub.
  • ubuntu:20.04: Dies bezieht sich auf den 20.04-Tag des offiziellen ubuntu-Images auf Docker Hub.
  • myuser/myapp: Dies bezieht sich auf den latest-Tag des myapp-Images im myuser-Repository auf Docker Hub.
  • myuser/myapp:v1.0: Dies bezieht sich auf den v1.0-Tag des myapp-Images im myuser-Repository auf Docker Hub.
  • myregistry.example.com:5000/myuser/myapp:v1.0: Dies bezieht sich auf den v1.0-Tag des myapp-Images im myuser-Repository auf der privaten Registrierung unter myregistry.example.com auf Port 5000.

Um zu sehen, wie Image-Referenzen in der Praxis funktionieren, lassen Sie uns ein Image anhand seiner Referenz herunterladen. Wir werden das hello-world-Image herunterladen, ein sehr kleines Image, das zum Testen von Docker-Installationen verwendet wird.

docker pull hello-world

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass Docker das Image herunterlädt.

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Dieser Befehl hat den latest-Tag des hello-world-Images von Docker Hub heruntergeladen. Die Ausgabe bestätigt die vollständige Referenz docker.io/library/hello-world:latest.

Jetzt lassen Sie uns die heruntergeladenen Images auflisten.

docker images

Sie sollten das hello-world-Image in der Liste sehen.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    <image_id>     <created_time>   <size>

Die Ausgabe zeigt das REPOSITORY (Image-Name), den TAG, die IMAGE ID, die CREATED-Zeit und die SIZE des Images. Die IMAGE ID ist ein eindeutiger Bezeichner für den Inhalt des Images.

Das Verständnis von Image-Referenzen ist für die Arbeit mit Docker von entscheidender Bedeutung, da es Ihnen ermöglicht, genau anzugeben, welches Image Sie verwenden möchten.

Ein Image anhand seiner ID taggen

In diesem Schritt lernen wir, wie man ein Docker-Image anhand seiner Image-ID taggt. Wenn Sie ein Image taggen, können Sie ihm einen neuen Namen und/oder einen neuen Tag geben und so eine neue Referenz erstellen, die auf den gleichen Image-Inhalt verweist. Dies ist nützlich für die Erstellung von Aliasen, die Versionierung oder die Vorbereitung eines Images für das Pushen an eine andere Registrierung.

Der grundlegende Befehl zum Taggen eines Images ist docker tag. Die Syntax lautet:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Sie können das Quellimage anhand seiner Image-ID, seines Namens oder seiner Namens- und Tag-Kombination angeben. In diesem Schritt verwenden wir die Image-ID.

Zunächst listen wir die Images erneut auf, um die Image-ID des hello-world-Images zu erhalten, das wir im vorherigen Schritt heruntergeladen haben.

docker images

Suchen Sie das hello-world-Image in der Ausgabe und notieren Sie sich seine IMAGE ID. Es handelt sich um eine Zeichenfolge aus hexadezimalen Zeichen, beispielsweise bf756fb1cdb1. Sie müssen nur die ersten paar Zeichen der ID verwenden, solange sie unter Ihren Images eindeutig sind.

Jetzt taggen wir das hello-world-Image anhand seiner Image-ID. Wir geben ihm einen neuen Namen, my-hello-world, und einen Tag v1.0. Ersetzen Sie <image_id> durch die tatsächliche Image-ID, die Sie aus der Ausgabe von docker images notiert haben.

docker tag < image_id > my-hello-world:v1.0

Es wird keine Ausgabe angezeigt, wenn der Befehl erfolgreich war.

Jetzt listen wir die Images erneut auf, um den neuen Tag zu sehen.

docker images

Sie sollten jetzt einen neuen Eintrag mit dem Repository my-hello-world und dem Tag v1.0 sehen. Beachten Sie, dass es die gleiche IMAGE ID wie das ursprüngliche hello-world-Image hat. Dies bestätigt, dass der neue Tag nur ein Zeiger auf den gleichen Image-Inhalt ist.

REPOSITORY       TAG       IMAGE ID       CREATED        SIZE
hello-world      latest    <image_id>     <created_time>   <size>
my-hello-world   v1.0      <image_id>     <created_time>   <size>

Sie haben erfolgreich ein Image anhand seiner Image-ID getaggt. Dies ist eine grundlegende Operation bei der Verwaltung von Docker-Images.

Ein Image anhand seines Namens taggen

In diesem Schritt lernen wir, wie man ein Docker-Image anhand seines Namens taggt. Dies ist eine weitere gängige Methode, um ein Image beim Taggen zu referenzieren. Wenn Sie nur den Image-Namen ohne Tag verwenden, geht Docker davon aus, dass Sie sich auf das Image mit dem latest-Tag beziehen.

Die Syntax für das Taggen anhand des Image-Namens ist die gleiche wie zuvor:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Diesmal wird unser SOURCE_IMAGE der Name des Images sein. Wir verwenden erneut das hello-world-Image. Da wir keinen Tag für die Quelle angeben, wird Docker hello-world:latest verwenden.

Lassen Sie uns das hello-world-Image mit einem neuen Namen, another-hello-world, und einem Tag v2.0 taggen.

docker tag hello-world another-hello-world:v2.0

Wiederum wird es keine Ausgabe geben, wenn der Befehl erfolgreich ist.

Jetzt listen wir die Images auf, um den neuen Tag zu sehen.

docker images

Sie sollten jetzt einen neuen Eintrag mit dem Repository another-hello-world und dem Tag v2.0 sehen. Wie im vorherigen Schritt verweist auch dieser neue Tag auf dieselbe IMAGE ID wie das ursprüngliche hello-world-Image.

REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
hello-world         latest    <image_id>     <created_time>   <size>
my-hello-world      v1.0      <image_id>     <created_time>   <size>
another-hello-world v2.0      <image_id>     <created_time>   <size>

Sie haben erfolgreich ein Image anhand seines Namens getaggt. Dies ist eine bequeme Methode, um neue Tags für die latest-Version eines Images zu erstellen.

Ein Image anhand seines Namens und Tags taggen

In diesem Schritt lernen wir, wie man ein Docker-Image anhand seines Namens und Tags taggt. Dies ist die genaueste Methode, um eine bestimmte Version eines Images beim Taggen zu referenzieren.

Die Syntax bleibt die gleiche:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Diesmal wird unser SOURCE_IMAGE sowohl mit seinem Namen als auch mit seinem Tag angegeben. Wir verwenden das my-hello-world:v1.0-Image, das wir in einem vorherigen Schritt erstellt haben.

Lassen Sie uns das my-hello-world:v1.0-Image mit einem neuen Namen, yet-another-hello-world, und einem Tag release taggen.

docker tag my-hello-world:v1.0 yet-another-hello-world:release

Es wird keine Ausgabe geben, wenn der Befehl erfolgreich ist.

Jetzt listen wir die Images auf, um den neuen Tag zu sehen.

docker images

Sie sollten jetzt einen neuen Eintrag mit dem Repository yet-another-hello-world und dem Tag release sehen. Dieser neue Tag verweist ebenfalls auf dieselbe IMAGE ID wie das ursprüngliche hello-world-Image und die anderen von uns erstellten Tags.

REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
hello-world             latest    <image_id>     <created_time>   <size>
my-hello-world          v1.0      <image_id>     <created_time>   <size>
another-hello-world     v2.0      <image_id>     <created_time>   <size>
yet-another-hello-world release   <image_id>     <created_time>   <size>

Sie haben erfolgreich ein Image anhand seines Namens und Tags getaggt. Diese Methode ist nützlich, wenn Sie einen neuen Tag basierend auf einer bestimmten, bereits getaggten Version eines Images erstellen möchten.

Ein Image für eine private Registry taggen

In diesem Schritt lernen wir, wie man ein Docker-Image so taggt, dass es in eine private Registry gepusht werden kann. Wenn Sie ein Image für eine private Registry taggen, müssen Sie den Hostnamen und optional den Port der Registry in der Referenz des Ziel-Images angeben.

Die Syntax für das Taggen bleibt die gleiche:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Das TARGET_IMAGE wird nun die Registry-Informationen enthalten:

[registry_hostname[:port]/]image_name[:tag]

Stellen Sie sich vor, wir haben eine private Registry, die auf myregistry.example.com auf Port 5000 läuft. Wir werden das hello-world-Image (unter Verwendung seines latest-Tags) taggen, um es für das Pushen in diese hypothetische Registry vorzubereiten. Wir geben es den Namen my-hello-world und den Tag prod.

docker tag hello-world:latest myregistry.example.com:5000/my-hello-world:prod

Es wird keine Ausgabe geben, wenn der Befehl erfolgreich ist.

Jetzt listen wir die Images auf, um den neuen Tag mit dem Registry-Namen zu sehen.

docker images

Sie sollten jetzt einen neuen Eintrag mit dem Repository myregistry.example.com:5000/my-hello-world und dem Tag prod sehen. Dieser Tag verweist ebenfalls auf dieselbe IMAGE ID wie das ursprüngliche hello-world-Image.

REPOSITORY                                TAG       IMAGE ID       CREATED        SIZE
hello-world                               latest    <image_id>     <created_time>   <size>
my-hello-world                            v1.0      <image_id>     <created_time>   <size>
another-hello-world                       v2.0      <image_id>     <created_time>   <size>
yet-another-hello-world                   release   <image_id>     <created_time>   <size>
myregistry.example.com:5000/my-hello-world prod      <image_id>     <created_time>   <size>

Sie haben erfolgreich ein Image mit einer Referenz getaggt, die den Hostnamen und den Port einer privaten Registry enthält. Dies ist ein notwendiger Schritt, bevor Sie das Image mit dem Befehl docker push in diese Registry pushen können.

Zusammenfassung

In diesem Lab haben wir uns mit Docker-Image-Referenzen (Docker-Image-Referenzen) befasst und deren Struktur kennengelernt, einschließlich des optionalen Registry-Hostnamens, des Image-Namens und des Tags. Wir haben gesehen, wie diese Referenzen verwendet werden, um bestimmte Image-Versionen aus Docker-Registries eindeutig zu identifizieren und herunterzuladen.

Anschließend haben wir untersucht, wie man den Befehl docker image tag verwendet, um Aliase für vorhandene Images zu erstellen. Wir haben geübt, ein Image anhand seiner ID, seines bestehenden Namens sowie einer Kombination aus bestehendem Namen und Tag zu taggen. Schließlich haben wir gelernt, wie man ein Image mit einer Referenz taggt, die den Hostnamen einer privaten Registry enthält, um es für das Pushen in eine benutzerdefinierte Registry vorzubereiten.