
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Publish your container image to Container Registry
/ 100
Docker ist eine offene Plattform zum Entwickeln, Versenden und Ausführen von Anwendungen. Damit können Sie Anwendungen von Ihrer Infrastruktur trennen und diese wie eine verwaltete Anwendung behandeln. Außerdem lässt sich Code schneller versenden, testen und implementieren sowie der Zyklus zwischen dem Schreiben und Ausführen von Code verkürzen.
Zu diesem Zweck kombiniert Docker Funktionen zur Kernel-Containerisierung mit Workflows und Tools, die Ihnen beim Verwalten und Bereitstellen von Anwendungen helfen.
Docker-Container können direkt in Kubernetes verwendet und somit auch ganz einfach in der Kubernetes Engine ausgeführt werden. Sobald Sie die Grundlagen von Docker kennen, können Sie Kubernetes- und Containeranwendungen entwickeln.
Aufgaben in diesem Lab:
Dies ist ein Einführungs-Lab. Es werden keine oder nur wenige Vorkenntnisse zu Docker und Containern vorausgesetzt. Vorkenntnisse zu Cloud Shell und zur Befehlszeile sind empfehlenswert, aber nicht erforderlich.
Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.
Für dieses Lab benötigen Sie Folgendes:
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:
Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).
Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.
Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.
Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.
Sie finden den Nutzernamen auch im Bereich Details zum Lab.
Klicken Sie auf Weiter.
Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.
Sie finden das Passwort auch im Bereich Details zum Lab.
Klicken Sie auf Weiter.
Klicken Sie sich durch die nachfolgenden Seiten:
Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.
Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.
Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID,
gcloud
ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
Ausgabe:
Ausgabe:
gcloud
finden Sie in Google Cloud in der Übersicht zur gcloud CLI.
(Befehlsausgabe)
Dieser einfache Container gibt Hello from Docker!
auf dem Bildschirm aus. Dieser Befehl ist zwar einfach, verursacht jedoch die Ausführung mehrerer Schritte, wie Sie in der Ausgabe sehen können. Der Docker-Daemon hat nach einem „Hello World“-Image gesucht, kein lokales gefunden, das Image aus der öffentlichen Registry „Docker Hub“ abgerufen, einen Container aus diesem Image erstellt und den Container ausgeführt.
(Befehlsausgabe)
Dies ist das Image aus der öffentlichen Docker Hub Registry. Die Image-ID hat das SHA256-Hash-Format. Dieses Feld gibt das bereitgestellte Docker-Image an. Wenn der Docker-Daemon ein Image lokal nicht finden kann, wird standardmäßig in der öffentlichen Registry nach dem Image gesucht.
(Befehlsausgabe)
Bei der zweiten Ausführung des Containers findet der Docker-Daemon das Image in der lokalen Registry und führt den Container über dieses Image aus. Das Image muss nicht aus Docker Hub abgerufen werden.
(Befehlsausgabe)
Es werden keine Container ausgeführt. Sie haben die zuvor ausgeführten „Hello World“-Container bereits verlassen.
docker ps -a
aus:(Befehlsausgabe)
Diese Ausgabe enthält die Container ID
, eine von Docker generierte UUID zur Identifizierung des Containers, und weitere Metadaten zur Ausführung. Das Element Names
der Container wird ebenfalls zufällig generiert, kann jedoch folgendermaßen angegeben werden: docker run --name [container-name] hello-world
.
In diesem Abschnitt erstellen Sie ein Docker-Image, das auf einer einfachen Knotenanwendung basiert.
test
zu erstellen und dorthin zu wechseln.Dockerfile
:Diese Datei enthält Anweisungen zur Image-Erstellung für den Docker-Daemon.
"."
) hinzugefügt.Dockerfile
-Zeilen besser zu verstehen. Nun schreiben Sie die Knotenanwendung und erstellen anschließend das Image.
Dies ist ein einfacher HTTP-Server, der Port 80 überwacht und „Hello World“ zurückgibt.
Erstellen Sie jetzt das Image.
"."
als Angabe für das aktuelle Verzeichnis verwendet. Sie müssen diesen Befehl also über das Verzeichnis ausführen, in dem das Dockerfile enthalten ist:Es kann einige Minuten dauern, bis dieser Befehl ausgeführt ist. Die Ausgabe sollte folgendermaßen aussehen:
Mit dem Flag -t
wird das Image mit der Syntax name:tag
benannt und getaggt. Der Name des Images lautet node-app
und das Tag
ist 0.1
. Das Tag wird beim Erstellen von Docker-Images dringend empfohlen. Wenn Sie kein Tag angeben, wird standardmäßig das Tag latest
angegeben, und es wird schwieriger, neuere Images von älteren Images zu unterscheiden. Beachten Sie auch, dass beim Erstellen des Images durch jede Zeile des oben angegebenen Dockerfile
Container-Zwischenschichten generiert werden.
Ihre Ausgabe sollte in etwa so aussehen:
Beachten Sie, dass node
das Basis-Image und node-app
das von Ihnen erstellte Image ist. Sie können node
erst entfernen, nachdem Sie node-app
entfernt haben. Die Größe des Images ist im Vergleich zu VMs relativ klein. Andere Versionen des node-Images, wie z. B. node:slim
und node:alpine
, ermöglichen noch kleinere Images für eine bessere Portabilität. Das Thema Reduzierung der Containergrößen wird unter „Erweiterte Themen“ näher behandelt. Sie finden alle im offiziellen Repository enthaltenen Versionen in Docker Hub unter „node“.
(Befehlsausgabe)
Mit dem Flag --name
können Sie dem Container bei Bedarf einen Namen geben. Mit dem Flag -p
weisen Sie Docker an, Port 4000 des Hosts Port 80 des Containers zuzuordnen. Jetzt können Sie den Server unter http://localhost:4000
erreichen. Ohne Portzuordnung ist das nicht möglich.
+
klicken, und testen Sie den Server:(Befehlsausgabe)
Solange das ursprüngliche Terminal läuft, wird auch der Container ausgeführt. Wenn der Container im Hintergrund (unabhängig von der Sitzung des Terminals) ausgeführt werden soll, müssen Sie das Flag -d
angeben.
(Befehlsausgabe)
docker ps
ausgeführt. Sie können sich die Logs anzeigen lassen, indem Sie den Befehl docker logs [container_id]
ausführen.docker logs 17b
ausführen, wenn die Container-ID 17bcaca6f....
lautet. (Befehlsausgabe)
Ändern Sie jetzt die Anwendung.
app.js
mit einem Texteditor Ihrer Wahl und ersetzen Sie „Hello World“ durch einen anderen String:0.2
:(Befehlsausgabe)
Beachten Sie, dass in Schritt 2 ein vorhandener Cache-Layer verwendet wird. Ab Schritt 3 werden die Layer geändert, da Sie eine Änderung in app.js
vorgenommen haben.
(Befehlsausgabe)
(Befehlsausgabe)
(Befehlsausgabe)
Nachdem Sie sich mit dem Erstellen und Ausführen von Containern vertraut gemacht haben, lernen Sie nun einige Fehlerbehebungsverfahren kennen.
docker logs [container_id]
aufrufen. Verwenden Sie die Option -f
, um sich die Ausgabe eines Logs anzeigen zu lassen, während der Container ausgeführt wird.(Befehlsausgabe)
In einigen Fällen kann es erforderlich sein, eine interaktive Bash-Sitzung in einem ausgeführten Container zu starten.
docker exec
verwenden. Öffnen Sie ein anderes Terminal, indem Sie in Cloud Shell auf das Plus + klicken, und geben Sie den folgenden Befehl ein:Mit den -it
-Flags können Sie mit einem Container interagieren, indem Sie ein „pseudo-tty“ zuordnen und „stdin“ offenlassen. Beachten Sie, dass „bash“ im WORKDIR
-Verzeichnis (/app) ausgeführt wurde, das im Dockerfile
angegeben ist. Ab hier haben Sie für die Fehlerbehebung eine interaktive Shell-Sitzung innerhalb des Containers.
(Befehlsausgabe)
(Befehlsausgabe)
(Befehlsausgabe)
--format
, um bestimmte Felder in der zurückgegebenen JSON-Datei zu überprüfen. Beispiele:(Ausgabebeispiel)
Weitere Informationen zum Debugging finden Sie in den folgenden Artikeln der Docker-Dokumentation:
Nun übertragen Sie das Image per Push an Google Artifact Registry. Danach entfernen Sie alle Container und Images, um eine neue Umgebung zu simulieren. Anschließend rufen Sie Ihre Container ab und führen sie aus. Das veranschaulicht die Portabilität von Docker-Containern.
Images, die Sie in Ihre von Artifact Registry gehostete private Registry übertragen möchten, müssen Sie mit einem Registry-Namen taggen. Das Format dafür ist <regional-repository>-docker.pkg.dev/my-project/my-repo/my-image
.
Sie müssen ein Repository erstellen, bevor Sie Images per Push übertragen können. Durch das Übertragen eines Images kann die Erstellung eines Repositorys nicht ausgelöst werden und das Cloud Build-Dienstkonto verfügt nicht über die Berechtigungen zum Erstellen von Repositories.
Klicken Sie im Navigationsmenü unter „CI/CD“ auf Artifact Registry > Repositories.
Klicken Sie auf +REPOSITORY ERSTELLEN neben den Repositories.
Geben Sie my-repository
als Repository-Name an.
Wählen Sie Docker als Format aus.
Wählen Sie unter „Standorttyp“ die Option Region und dann den Standort
Klicken Sie auf Erstellen.
Bevor Sie Images hoch‑ oder herunterladen können, müssen Sie Docker so konfigurieren, dass die Google Cloud CLI zum Authentifizieren von Anfragen an Artifact Registry verwendet wird.
Y
ein, wenn Sie dazu aufgefordert werden.Durch den Befehl wird die Docker-Konfiguration aktualisiert. Sie können jetzt eine Verbindung zu Artifact Registry in Ihrem Google Cloud-Projekt herstellen, um Images hoch‑ oder herunterzuladen.
node-app:0.2
aus.(Befehlsausgabe)
Befehlsausgabe (Ihre kann abweichen):
Klicken Sie nach Abschluss der Übertragung im Navigationsmenü unter „CI/CD“ auf Artifact Registry > Repositories.
Klicken Sie auf my-repository. Der Docker-Container node-app
sollte angezeigt werden:
Starten Sie eine neue VM, stellen Sie eine SSH-Verbindung zu ihr her und installieren Sie gcloud. Entfernen Sie einfach alle Container und Images, um eine neue Umgebung zu simulieren.
Sie müssen zuerst die untergeordneten Images (von node:lts
) entfernen, um das node-Image entfernen zu können.
(Befehlsausgabe)
Sie haben nun eine „neue“ Umgebung erstellt.
(Befehlsausgabe)
Klicken Sie auf Fortschritt prüfen. Wenn Sie erfolgreich ein Container-Image in Artifact Registry veröffentlicht haben, wird ein Testergebnis angezeigt.
Hier wird die Übertragbarkeit von Docker-Containern veranschaulicht. Solange Docker auf dem Host (entweder lokal oder auf einer VM) installiert ist, können Images von öffentlichen oder privaten Registrys abgerufen und Container basierend auf diesem Image ausgeführt werden. Außer für Docker gibt es keine Anwendungsabhängigkeiten, die auf dem Host installiert werden müssen.
Das war's auch schon! In diesem Lab haben Sie verschiedene praktische Aktivitäten ausgeführt und unter anderem Container basierend auf öffentlichen Images aus Docker Hub ausgeführt. Außerdem haben Sie selbst Container-Images erstellt und diese per Push an Google Artifact Registry übertragen. In diesem Lab haben Sie auch gelernt, wie Sie ausgeführte Container effektiv debuggen. Darüber hinaus haben Sie erfahren, wie Sie Container basierend auf Images ausführen, die aus Google Artifact Registry abgerufen werden. Sie kennen sich also jetzt besser mit Docker aus.
In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.
Anleitung zuletzt am 29. Februar 2024 aktualisiert
Lab zuletzt am 29. Februar 2024 getestet
© 2025 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.
Diese Inhalte sind derzeit nicht verfügbar
Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail
Sehr gut!
Bei Verfügbarkeit kontaktieren wir Sie per E-Mail
One lab at a time
Confirm to end all existing labs and start this one