Verschlagworten und Freigeben Ihres Docker-Images
Nachdem wir nun ein benutzerdefiniertes Docker-Image erstellt haben, lernen wir, wie man es richtig verschlagwortet und für die Freigabe vorbereitet. In einem realen Szenario würden Sie das Image in eine Registry wie Docker Hub pushen, aber in diesem Tutorial konzentrieren wir uns auf die Vorbereitungsschritte.
Docker-Images werden durch ihren Repository-Namen und Tag identifiziert. Tags helfen bei der Versionierung und Organisation von Images. Der Standard-Tag ist latest
, aber es ist eine gute Praxis, aussagekräftige Versions-Tags zu verwenden.
Fügen wir unserem benutzerdefinierten Image ein paar weitere Tags hinzu:
docker tag my-custom-nginx:v1 my-custom-nginx:latest
docker tag my-custom-nginx:v1 my-custom-nginx:stable
Diese Befehle erstellen zwei zusätzliche Tags für unser Image: latest
und stable
. Die tatsächlichen Image-Daten werden zwischen allen drei Tags geteilt, daher ist dieser Vorgang sehr effizient.
Überprüfen wir unsere Images erneut:
docker images
Sie sollten jetzt mehrere Einträge für my-custom-nginx
sehen:
REPOSITORY TAG IMAGE ID CREATED SIZE
my-custom-nginx v1 a1b2c3d4e5f6 10 minutes ago 142MB
my-custom-nginx latest a1b2c3d4e5f6 10 minutes ago 142MB
my-custom-nginx stable a1b2c3d4e5f6 10 minutes ago 142MB
nginx latest 605c77e624dd 2 weeks ago 142MB
Beachten Sie, dass alle my-custom-nginx
-Images dieselbe Image-ID haben, was darauf hindeutet, dass es sich um dasselbe Image mit unterschiedlichen Tags handelt.
Vorbereiten der Image-Verteilung
In einem realen Szenario würden Sie Ihr Image in eine Registry wie Docker Hub pushen. Dazu müssten Sie:
- Ein Konto auf Docker Hub erstellen
- Sich von Ihrem Terminal aus bei Docker Hub anmelden
- Ihr Image mit Ihrem Docker Hub-Benutzernamen taggen
- Das Image pushen
Nehmen wir für Demonstrationszwecke an, dass Ihr Docker Hub-Benutzername yourusername
ist. So bereiten Sie Ihr Image für das Pushen vor:
docker tag my-custom-nginx:v1 yourusername/my-custom-nginx:v1
Um das Image zu pushen (in einem realen Szenario), würden Sie Folgendes verwenden:
## Dies dient nur zur Demonstration - wir werden es nicht tatsächlich pushen
## docker push yourusername/my-custom-nginx:v1
Speichern eines Docker-Images in einer Datei
Anstatt in eine Registry zu pushen, können Sie ein Docker-Image auch in einer Datei speichern, um es manuell zu übertragen:
docker save -o my-custom-nginx.tar my-custom-nginx:v1
Dieser Befehl speichert das Image in einem Tarball namens my-custom-nginx.tar
. Sie können überprüfen, ob die Datei erstellt wurde:
ls -lh my-custom-nginx.tar
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
-rw------- 1 labex labex 142M Nov 10 12:34 my-custom-nginx.tar
Laden eines Images aus einer Datei
Um ein Image von einem Tarball auf einem anderen Rechner (oder demselben Rechner nach dem Entfernen des Images) zu laden, würden Sie Folgendes verwenden:
## Wir werden diesen Befehl nicht tatsächlich als Teil des Tutorials ausführen
## docker load -i my-custom-nginx.tar
Exportieren der Container-Dokumentation
Um anderen zu helfen, Ihr benutzerdefiniertes Image zu verstehen, ist es eine gute Praxis, die von Ihnen vorgenommenen Änderungen zu dokumentieren. Erstellen wir eine einfache Dokumentationsdatei:
cat > my-custom-nginx-doc.txt << EOF
## My Custom Nginx Image
This is a custom Nginx image created by cloning the official Nginx image.
### Changes Made
- Replaced the default welcome page with a custom HTML page
### How to Run
docker run --name my-custom-container -d -p 8080:80 my-custom-nginx:v1
### Version History
- v1: Initial custom version with modified welcome page
EOF
Sie haben jetzt eine Dokumentationsdatei für Ihr benutzerdefiniertes Image.
Herzlichen Glückwunsch! Sie haben gelernt, wie Sie Ihr Docker-Image verschlagworten und für die Freigabe vorbereiten. Im nächsten Schritt werden wir einige Best Practices durchgehen und unsere Umgebung bereinigen.