Einführung
In dieser Herausforderung werden wir mit Docker-Images spielen. Ein Docker-Container-Image ist ein leichtgewichtiges, selbstständiges, ausführbares Softwarepaket, das alles enthält, was erforderlich ist, um eine Anwendung auszuführen: Code, Laufzeitumgebung, Systemtools, Systembibliotheken und Einstellungen.
Docker-Image ändern
Ein Docker-Image enthält einen Imagenamen und ein Imagetag, wobei der Imagename aus der Repository-Adresse und der Image-Identifizierung besteht. In diesem Unterabschnitt werden wir ein von jemand anderem erstelltes Docker-Image in unser Repository pushen.
Ziel
Ihr Ziel ist es, die öffentlichen ubuntu-Images auf dockerhub in Ihr privates Repository zu pushen.
Ergebnisbeispiel
Hier ist ein Beispiel dessen, was Sie am Ende dieser Herausforderung erreichen sollten:
- Registrieren Sie sich auf
dockerhubund melden Sie sich an.

- Laden Sie das
ubuntu:22.10-Image von docker hub auf unseren lokalen Server herunter.

- Ändern Sie das
ubuntu:22.10-Image in unsere Repository-Adresse.

- Melden Sie sich bei docker hub an.

- Pusen Sie das Image in das entfernte Repository.

Anforderungen
Um diese Herausforderung zu absolvieren, benötigen Sie Folgendes:
- Die Docker-Engine installiert haben.
- Kenntnisse der Docker-Befehlszeile.
- Ein bereits vorhandenes Docker-Image, das aktualisiert werden muss.
Erstelle ein Web-Image
Wir verwenden normalerweise nginx, um statische Anwendungen wie Websites auszuführen. In diesem Abschnitt werden wir unser Web-Image erstellen.
Ziel
Ihr Ziel ist es, ein Docker-Container-Image zu erstellen und eine einfache Webanwendung darin zu verpacken, und dann dieses Image zu verwenden, um den Container zu starten und ihn richtig zugänglich zu machen.
Ergebnisbeispiel
Hier ist ein Beispiel dessen, was Sie am Ende dieser Herausforderung erreichen sollten:
- Erstellen Sie in das Verzeichnis
/home/labex/Codeeine neue Datei namensindex.htmlmit dem Inhalthello labex.

- Erstellen Sie eine neue Datei namens
Dockerfilemit dem folgenden Inhalt

- Erstellen Sie Ihr Web-Image im Format
your_dockerhub_id/web:1.1.0.

- Pusen Sie das erstellte Web-Image auf
dockerhub.

- Starten Sie einen Container namens
webmityour_dockerhub_id/web:1.1.0, und Sie müssen auch Port80auf den Host zuweisen.

- Verwenden Sie den
curl-Befehl, umhttp://127.0.0.1zu besuchen und zu überprüfen, dass die Ausgabehello labexist.

Anforderungen
Um diese Herausforderung zu absolvieren, benötigen Sie Folgendes:
- Mit
Dockerfilebauen - Die Basis-Image als
Nginx:latestangeben - Port
80imDockerfilemit dem Befehl EXPOSE freigeben - Nachdem der Build abgeschlossen ist, stellen Sie sicher, dass der Container richtig ausgeführt werden kann und auf HTTP-Anfragen reagieren kann.
Multi-Stufen-Image-Build
Das Erstellen eines Container-Images umfasst oft zwei Schritte:
- Kompilieren der Anwendungsbuild.
- Erstellen des Anwendungsimages.
In diesem Abschnitt werden diese beiden Schritte in eine einzige Docker-Datei kombiniert, um einen mehrstufigen Build zu erreichen.
Um diesen Herausforderungsabschnitt zu absolvieren, haben wir ein Hello World-Projekt unter https://github.com/joker-bai/go-hello-world.git vorbereitet.
Ziel
Ihr Ziel ist es, einen mehrstufigen Build zu verwenden, um ein Container-Image zu erstellen und dieses Image zu verwenden, um einen Container zu starten und ihn richtig zugänglich zu machen.
Ergebnisbeispiel
Hier ist ein Beispiel dessen, was Sie am Ende dieser Herausforderung erreichen sollten:
Erstellen Sie ein Verzeichnis
hello-worldim Verzeichnis/home/labex/Code.
Erstellen Sie in diesem Verzeichnis eine
Dockerfilemit dem folgenden Inhalt
Erstellen Sie das Docker-Image im Format
your_dockerhub_id/go-hello-world:1.1.0.
Pusen Sie das Image auf den Docker Hub.

Starten Sie einen Container namens
go-hello-worldund freigeben Sie Port8080.
Besuchen Sie
http://127.0.0.1:8080, um zu überprüfen, ob alles in Ordnung ist.
Anforderungen
Um diese Herausforderung zu absolvieren, benötigen Sie Folgendes:
- Mit
Dockerfilebauen - Nachdem der Build abgeschlossen ist, stellen Sie sicher, dass der Container richtig ausgeführt werden kann und auf HTTP-Anfragen reagieren kann.
Zusammenfassung
Herzlichen Glückwunsch zur Fertigstellung aller Elemente dieser Herausforderung. Sie haben jetzt die Flexibilität, Anwendungsbilder zu erstellen und zu verwalten.



