Einführung
In diesem Lab lernen Sie, wie Sie den Befehl docker scout watch effektiv nutzen können, um Container-Images zu überwachen. Sie werden verschiedene Szenarien untersuchen, beginnend mit der Überwachung eines bestimmten Repositorys auf neue Images und anschließend die Verfeinerung Ihrer Überwachung durch Filtern nach Tags. Sie werden auch erfahren, wie Sie Ihre Überwachung auf alle Repositorys innerhalb einer Registry erweitern können und schließlich, wie Sie eine Überwachung starten, die alle vorhandenen Images in einem Repository umfasst. Durch praktische Übungen gewinnen Sie praktische Erfahrungen bei der Einrichtung und Verwaltung der Image-Überwachung mit Docker Scout.
Überwachen Sie ein bestimmtes Repository auf neue Images
In diesem Schritt lernen Sie, wie Sie ein bestimmtes Docker-Repository auf neue Images überwachen können, indem Sie den Befehl docker pull verwenden. Dies ist eine grundlegende Operation in Docker, die es Ihnen ermöglicht, Images von einer Registry auf Ihren lokalen Rechner herunterzuladen.
Zunächst laden wir ein bestimmtes Image aus der Docker Hub Registry herunter. Wir verwenden das hello-world-Image, ein sehr kleines Image, das zum Testen von Docker-Installationen verwendet wird.
docker pull hello-world
Sie sollten eine Ausgabe sehen, die anzeigt, dass das Image heruntergeladen wird.
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 teilt Docker mit, das hello-world-Image mit dem Tag latest aus der Standard-Registry (Docker Hub) herunterzuladen. Wenn das Image bereits lokal vorhanden ist, überprüft Docker, ob eine neuere Version verfügbar ist, und lädt sie bei Bedarf herunter.
Als Nächstes listen wir die Images auf Ihrem lokalen Rechner auf, um zu bestätigen, dass das hello-world-Image heruntergeladen wurde.
docker images
Sie sollten hello-world in der Ausgabe sehen.
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest ... ... ...
Dieser Befehl zeigt Ihnen eine Liste aller auf Ihrem lokalen Rechner gespeicherten Docker-Images, einschließlich ihres Repositorys, Tags, Image-IDs, Erstellungsdatums und Größen.
Jetzt versuchen wir, das gleiche Image erneut herunterzuladen. Da Sie bereits die neueste (latest) Version von hello-world haben, wird Docker es nicht erneut herunterladen.
docker pull hello-world
Die Ausgabe wird anzeigen, dass das Image auf dem neuesten Stand ist.
Using default tag: latest
latest: Pulling from library/hello-world
Status: Image is up to date for hello-world:latest
docker.io/library/hello-world:latest
Dies zeigt, wie docker pull vor dem Herunterladen auf neuere Versionen prüft.
Überwachen Sie ein bestimmtes Repository und filtern Sie nach Tag
In diesem Schritt lernen Sie, wie Sie ein bestimmtes Docker-Repository überwachen und beim Herunterladen von Images nach Tags filtern können. Docker-Images haben oft verschiedene Versionen oder Varianten, die durch Tags identifiziert werden. Das Angeben eines Tags ermöglicht es Ihnen, eine bestimmte Version eines Images herunterzuladen.
Im vorherigen Schritt haben wir das hello-world-Image mit dem Standard-Tag latest heruntergeladen. Jetzt laden wir ein anderes Image herunter, beispielsweise das ubuntu-Image, und geben ein bestimmtes Tag an. Wir laden das Tag 20.04, das der Ubuntu 20.04 LTS-Version entspricht.
docker pull ubuntu:20.04
Sie werden eine Ausgabe sehen, die den Downloadfortschritt für das angegebene Ubuntu-Image-Tag anzeigt.
20.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04
Dieser Befehl teilt Docker mit, das ubuntu-Image speziell mit dem Tag 20.04 herunterzuladen. Wenn Sie kein Tag angeben, verwendet Docker standardmäßig latest.
Jetzt listen wir erneut Ihre lokalen Images auf, um das neu heruntergeladene ubuntu:20.04-Image zu sehen.
docker images
Sie sollten jetzt sowohl hello-world:latest als auch ubuntu:20.04 in der Liste sehen.
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest ... ... ...
ubuntu 20.04 ... ... ...
Dies zeigt, dass Sie erfolgreich eine bestimmte Version des ubuntu-Images heruntergeladen haben, indem Sie sein Tag angegeben haben.
Sie können auch andere Tags desselben Images herunterladen. Beispielsweise laden wir das Tag 18.04 des ubuntu-Images herunter.
docker pull ubuntu:18.04
Wiederum werden Sie den Downloadfortschritt sehen.
18.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
Wenn Sie Ihre Images noch einmal auflisten, werden alle drei von Ihnen heruntergeladenen Images angezeigt.
docker images
Die Ausgabe wird jetzt auch ubuntu:18.04 enthalten.
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest ... ... ...
ubuntu 20.04 ... ... ...
ubuntu 18.04 ... ... ...
Dies zeigt, wie Sie Tags verwenden können, um verschiedene Versionen desselben Images auf Ihrem lokalen Rechner zu verwalten.
Überwachen Sie alle Repositorys in einer Registry
In diesem Schritt lernen Sie, wie Sie die Repositorys in einer Docker-Registry auflisten können. Während docker pull für einzelne Images verwendet wird, gibt es keinen einzigen Befehl, um alle Repositorys in einer öffentlichen Registry wie Docker Hub direkt über die Docker CLI zu "überwachen" oder aufzulisten, da es einfach zu viele Repositorys gibt. Sie können jedoch nach Repositorys anhand von Schlüsselwörtern suchen.
Der Befehl docker search ermöglicht es Ihnen, in der Docker Hub Registry nach Images zu suchen. Suchen wir nach Images, die sich auf "nginx" beziehen.
docker search nginx
Sie werden eine Liste von Repositorys sehen, die dem Suchbegriff "nginx" entsprechen.
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 16000 [OK]
...
Die Ausgabe enthält Informationen zu jedem passenden Repository, einschließlich seines Namens, seiner Beschreibung, der Anzahl der Sterne und ob es sich um ein offizielles Image oder einen automatisierten Build handelt.
Sie können auch die Suchergebnisse filtern. Beispielsweise können Sie die Option --filter verwenden, um nur die offiziellen Images zu sehen, die sich auf "ubuntu" beziehen.
docker search --filter is-official=true ubuntu
Dieser Befehl zeigt Ihnen nur die offiziellen Ubuntu-Repositorys.
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based... 14000 [OK]
Obwohl docker search nicht alle Repositorys auflistet, ist es die wichtigste Methode, um Images in einer Registry über die Docker CLI zu entdecken. Um eine umfassende Liste der Repositorys in einer großen öffentlichen Registry wie Docker Hub zu erhalten, müssen Sie in der Regel die API der Registry oder eine Web-Oberfläche verwenden.
Für den Zweck dieses Labs ist es wichtig, zu verstehen, wie man nach Images sucht und diese entdeckt, um die Repositorys zu finden, die man "überwachen" oder von denen man Images herunterladen möchte.
Überwachen Sie ein Repository und pushen Sie alle vorhandenen Images
In diesem Schritt lernen Sie, wie Sie ein vorhandenes Image taggen und es in eine Docker-Registry pushen können. Das Pushen von Images ermöglicht es Ihnen, Ihre benutzerdefinierten Images oder modifizierte Versionen von vorhandenen Images mit anderen zu teilen oder sie an einem Remote-Speicherort zu speichern.
Bevor Sie ein Image pushen können, müssen Sie es mit der Registry-Adresse, Ihrem Benutzernamen und dem Repository-Namen taggen. Wir verwenden das ubuntu:20.04-Image, das Sie im vorherigen Schritt heruntergeladen haben. Taggen wir es, um es auf Docker Hub zu pushen. Ersetzen Sie your_docker_username durch Ihren tatsächlichen Docker Hub-Benutzernamen.
docker tag ubuntu:20.04 your_docker_username/ubuntu:20.04
Dieser Befehl erstellt einen neuen Tag für das ubuntu:20.04-Image. Der neue Tag lautet your_docker_username/ubuntu:20.04. Das Format ist [registry]/[username]/[repository]:[tag]. Wenn Sie auf Docker Hub pushen, können Sie den Registry-Teil (docker.io/) weglassen.
Jetzt listen wir erneut Ihre lokalen Images auf, um den neuen Tag zu sehen.
docker images
Sie sollten einen Eintrag sehen, bei dem your_docker_username/ubuntu das Repository und 20.04 der Tag ist, und der dieselbe Image-ID wie das ursprüngliche ubuntu:20.04-Image hat.
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest ... ... ...
ubuntu 20.04 ... ... ...
ubuntu 18.04 ... ... ...
your_docker_username/ubuntu 20.04 ... ... ...
Nachdem das Image korrekt getaggt wurde, können Sie es in Ihr Docker Hub-Repository pushen. Hinweis: Sie müssen sich bei Docker Hub angemeldet haben, um Images zu pushen. Wenn Sie nicht angemeldet sind, wird der docker push-Befehl fehlschlagen. Für den Zweck dieses Labs demonstrieren wir den Befehl, aber Sie müssen das Image nicht erfolgreich pushen, es sei denn, Sie haben ein Docker Hub-Konto und sind angemeldet.
docker push your_docker_username/ubuntu:20.04
Wenn Sie angemeldet sind, werden Sie eine Ausgabe sehen, die angibt, dass die Layer in die Registry gepusht werden. Wenn Sie nicht angemeldet sind, erhalten Sie einen Authentifizierungsfehler.
The push refers to repository [docker.io/your_docker_username/ubuntu]
...
Dieser Befehl lädt das Image mit dem angegebenen Tag in Ihr Repository auf Docker Hub hoch.
Obwohl Sie nicht mit einem einzigen Befehl ein Repository "überwachen" und alle vorhandenen Images automatisch pushen können, können Sie dies erreichen, indem Sie die docker tag- und docker push-Befehle für die Images, die Sie pushen möchten, in ein Skript packen.
Zusammenfassung
In diesem Lab haben Sie den grundlegenden docker pull-Befehl gelernt, um Container-Images aus einer Registry herunterzuladen. Insbesondere haben Sie gezeigt, wie man ein bestimmtes Image wie hello-world herunterlädt und mithilfe von docker images seine Existenz verifiziert. Sie haben auch beobachtet, wie Docker nachfolgende Pull-Anfragen für dasselbe Image effizient behandelt und nur herunterlädt, wenn eine neuere Version verfügbar ist.



