Zum Hauptinhalt springen Skip to page footer

Docker-Images und Container erstellen

| Tutorial | Docker

Erfahren Sie, wie Sie Docker-Images und Container erstellen. Ein Dockerfile ermöglicht es Ihnen, die Konfiguration eines Images zu definieren und den Build-Prozess zu automatisieren. Verwalten Sie Ihre Images mithilfe eines Docker-Image-Repositorys, wie Docker Hub, um sie zu teilen, wiederzuverwenden und effizient zu verwalten.

Erstellen eines Dockerfiles

Eine Docker-Datei ist eine Textdatei, die zum Definieren der Konfiguration eines Docker-Images verwendet wird. Mit einer Docker-Datei können Sie den gesamten Prozess der Image-Erstellung automatisieren, indem Sie eine Reihe von Anweisungen bereitstellen. Jede Anweisung in der Docker-Datei erstellt eine neue Ebene im Bild. Dadurch wird das Bild effizient und wiederverwendbar.

Hier ist ein einfaches Dockerfile-Beispiel: 

# Basisimage
FROM ubuntu:latest

# Arbeitsverzeichnis festlegen
WORKDIR /app

# Kopieren der Anwendungsdateien in das Image
COPY . /app

# Installation von Abhängigkeiten
RUN apt-get update && apt-get install -y python3

# Anwendungsport öffnen
EXPOSE 8000

# Anwendung starten
CMD ["python3", "app.py"]

Erklärung

In diesem Beispiel wird das Basisimage „ubuntu:latest“ verwendet. Das Arbeitsverzeichnis wird auf „/app“ gesetzt und alle Dateien im aktuellen Verzeichnis werden in das Image in „/app“ kopiert. Anschließend werden Abhängigkeiten aktualisiert und Python 3 wird auf Port 8000 installiert führt schließlich den Befehl „python3 app.py“ aus, um die Anwendung zu starten.  

Build-Prozess eines Docker-Images

Der Prozess zum Erstellen eines Docker-Images erfolgt durch Ausführen des Befehls „docker build“, wobei der Pfad zu dem Verzeichnis angegeben wird, das die Docker-Datei enthält. Dieser Befehl führt die Anweisungen in Ihrer Docker-Datei aus, um das Image Schritt für Schritt zu erstellen.

Der Build-Prozess besteht aus mehreren Schritten.

Parsing des Dockerfiles: Docker liest die Docker-Datei und analysiert die Anweisungen.

Herunterladen des Basisimages: Wenn das Basis-Image auf Ihrem System nicht vorhanden ist, wird es von einem öffentlichen Docker-Registrierungsserver wie Docker Hub heruntergeladen.

Erstellen von Zwischenschichten: Jede Anweisung in der Docker-Datei wird ausgeführt, um eine neue Ebene zu erstellen. Zwischenebenen sind schreibgeschützt und können von verschiedenen Images gemeinsam genutzt werden, wodurch der Speicherbedarf reduziert wird.

Erzeugen eines finalen Images: Das endgültige Image wird erstellt, wenn alle Anweisungen in der Docker-Datei ausgeführt werden. Dieses Image enthält alle während des Erstellungsprozesses erstellten Ebenen.

Der Befehl zum Erstellen des Docker-Images lautet: 

docker build -t image-name:tag path/to/dockerfile-directory

„-t“ gibt den Image-Namen und das Tag an. Dieses Tag wird normalerweise verwendet, um verschiedene Versionen desselben Images zu identifizieren. Geben Sie den Pfad zum Dockerfile-Verzeichnis mit „path/to/dockerfile-directory“ an.

Sobald der Erstellungsprozess abgeschlossen ist, ist das erstellte Image einsatzbereit. 

Verwalten von Images mit dem Docker-Image-Repository

Ein Docker-Image-Repository ist ein zentraler Speicherort für Docker-Images. s ermöglicht das Speichern, Abrufen und Verteilen von Images über verschiedene Docker-Hosts.

Ein bekanntes und weit verbreitetes Docker-Image-Repository ist Docker Hub. Docker Hub ist ein öffentliches Repository, das viele vorgefertigte Docker-Images für verschiedene Anwendungsfälle enthält. Benutzer können auch ihre eigenen Images hochladen und teilen. Hier sind einige wichtige Konzepte und Vorgänge beim Verwalten von Bildern in einem Docker-Image-Repository. 

1. Hochladen von Images

Nachdem Sie ein Docker-Image erstellt haben, können Sie es in ein Docker-Image-Repository hochladen. Dadurch können andere Benutzer Ihre Images finden und verwenden. Das Hochladen kann über die Docker-CLI oder die Docker-Hub-Website erfolgen. Sie können beispielsweise den Docker-Push-Befehl verwenden, um das Bild hochzuladen. 

docker push username/image-name:tag

Hierbei muss "username" der Docker Hub-Benutzername sein, unter dem Sie das Image hochladen möchten.

2. Herunterladen von Images

Um ein Image aus dem Docker-Image-Repository herunterzuladen, verwenden Sie den Befehl "docker pull". Beispielsweise:

docker pull username/image-name:tag

Dieser Befehl lädt das angegebene Image von Docker Hub auf Ihren lokalen Docker-Host herunter.

3. Durchsuchen des Repositorys

Sie können das Docker-Image-Repository durchsuchen, um nach vorhandenen Images zu suchen. Dies kann über die Docker-CLI oder die Docker-Hub-Website erfolgen. Sie können anhand von Tags, Benutzernamen oder bestimmten Kategorien nach Images suchen. 

4. Versionsverwaltung

Docker-Images können unterschiedliche Tags haben, die auf unterschiedliche Versionen des Images hinweisen. Sie können neue Versionen von Images hochladen, vorhandene Images neu markieren und den Versionsverlauf verwalten. 

5. Zusammenarbeit und Sharing

Docker-Image-Repositorys ermöglichen die Zusammenarbeit und den Austausch von Images zwischen Entwicklern und Teams. Sie können Images mit anderen teilen, Zugriff auf Images gewähren und gemeinsam an Images arbeiten. 

 

Beachten Sie, dass Docker Hub ein öffentliches Repository ist und daher nicht ideal zum Speichern sensibler oder proprietärer Bilder geeignet ist. In solchen Fällen empfehlen wir die Verwendung eines privaten Docker-Image-Repositorys, das Sie auf Ihrem eigenen Server oder Ihrer eigenen Cloud-Plattform bereitstellen können. Gängige Optionen für private Repositorys sind Azure Container Registry, Amazon Elastic Container Registry (ECR) oder Google Container Registry.

Die Verwaltung Ihrer Bilder mithilfe von Docker-Image-Repositorys bietet eine einfache Möglichkeit, Ihre Bilder freizugeben, wiederzuverwenden und effizient zu verwalten. Sowohl einzelne Entwickler als auch Teams und Organisationen können von dieser Funktion profitieren. Ein Repository ermöglicht Ihnen die zentrale Speicherung Ihrer Bilder für einfachen Zugriff und Zusammenarbeit. Sie können Berechtigungen festlegen, um den Zugriff auf bestimmte Bilder zu steuern, und verschiedene Versions-Tags verwenden, um die Versionskontrolle zu verbessern.

Darüber hinaus erleichtern Repositorys die Skalierung Ihrer Docker-Infrastruktur. Sie können Images in verschiedenen Umgebungen (Entwicklung, Test, Produktion) verwalten und sicherstellen, dass alle Entwickler und Systeme Zugriff auf dasselbe Image haben. Dies verbessert die Konsistenz und vermeidet potenzielle Probleme, die durch unterschiedliche Bildversionen und -konfigurationen entstehen können. Insgesamt bietet die Verwendung eines Docker-Image-Repositorys zur Verwaltung Ihrer Images eine effiziente und strukturierte Möglichkeit, Ihre Docker-Images zu organisieren und den Entwicklungs- und Bereitstellungsprozess zu optimieren.