Docker-Tutorial: Eigene Docker-Images erstellen, verwalten und sichern – Nutzung einer lokalen Registry

Docker-Images sind die Grundlage, auf der Container laufen. In diesem Tutorial erfahren Sie, wie Sie eigene Docker-Images erstellen, verwalten, sichern und wie Sie eine lokale Docker-Registry einrichten und verwenden können. Eine lokale Registry ist nützlich, wenn Sie Images nicht auf Docker Hub oder anderen öffentlichen Plattformen speichern möchten, sondern sie lieber im eigenen Netzwerk verteilen.

Inhaltsverzeichnis

  1. Was ist ein Docker-Image?
  2. Erstellen eines eigenen Docker-Images
  3. Verwalten von Docker-Images
  4. Sichern von Docker-Images
  5. Lokale Docker-Registry einrichten
  6. Docker-Images in der lokalen Registry speichern und abrufen

Was ist ein Docker-Image?

Ein Docker-Image ist eine unveränderliche Vorlage, die alle Komponenten (Dateien, Bibliotheken, Umgebungsvariablen, Abhängigkeiten usw.) enthält, die erforderlich sind, um eine Anwendung in einem isolierten Container auszuführen. Images basieren auf Schichten (Layers) und können wiederverwendet werden, um Speicherplatz zu sparen und die Build-Zeiten zu reduzieren.


Erstellen eines eigenen Docker-Images

Docker-Images werden normalerweise mit einer Datei namens Dockerfile erstellt. Diese Datei enthält Anweisungen, die den Aufbau des Images definieren, z. B. welches Basisimage verwendet wird und welche Befehle ausgeführt werden sollen.

Beispiel: Ein einfaches Dockerfile

Hier ist ein einfaches Beispiel für ein Dockerfile, das eine Node.js-Anwendung erstellt:

# Basis-Image verwenden
FROM node:14

# Arbeitsverzeichnis im Container erstellen
WORKDIR /usr/src/app

# Paketdateien kopieren und installieren
COPY package*.json ./
RUN npm install

# Anwendungscode kopieren
COPY . .

# Port freigeben
EXPOSE 8080

# Startbefehl für die Anwendung
CMD ["node", "app.js"]

Schritte zum Erstellen eines Images:

  1. Dockerfile schreiben: Erstellen Sie ein Dockerfile in Ihrem Projektverzeichnis, wie im obigen Beispiel.
  2. Image erstellen: Führen Sie folgenden Befehl aus, um das Image zu erstellen:
docker build -t mein-node-app .
  • -t mein-node-app: Dies gibt dem Image einen Namen (Tag).
  • .: Der Punkt gibt den aktuellen Verzeichnisort an, in dem sich das Dockerfile befindet.

Image anzeigen: Nach dem Build können Sie das erstellte Image mit folgendem Befehl auflisten:

docker images

Das Image mein-node-app ist nun erstellt und bereit, um Container daraus zu starten.


Verwalten von Docker-Images

1. Liste der vorhandenen Images anzeigen

Um alle auf Ihrem System gespeicherten Docker-Images anzuzeigen, verwenden Sie den Befehl:

docker images

Dieser Befehl zeigt alle Images mit den dazugehörigen Informationen wie Image-ID, Tag und Erstellungsdatum an.

2. Image umbenennen (Tagging)

Sie können einem Image einen neuen Tag (Namen) geben, um es leichter zu identifizieren. Der Tag wird vor allem dann wichtig, wenn Sie das Image in eine Registry hochladen.

docker tag mein-node-app localhost:5000/meine-node-app:1.0

Dieser Befehl benennt das Image mein-node-app um in localhost:5000/meine-node-app:1.0, was wichtig ist, wenn Sie es in eine Registry verschieben möchten.

3. Image löschen

Nicht mehr benötigte Images können entfernt werden, um Speicherplatz freizugeben:

docker rmi mein-node-app

Dies entfernt das Image von Ihrem System.


Sichern von Docker-Images

Es ist wichtig, Docker-Images regelmäßig zu sichern, insbesondere wenn sie eigens entwickelt oder modifiziert wurden. Dies kann über eine einfache Export- und Import-Funktion erfolgen.

1. Docker-Image sichern (exportieren)

Ein Docker-Image kann in eine Datei exportiert werden, um es später wiederherzustellen oder auf ein anderes System zu übertragen. Der folgende Befehl erstellt ein TAR-Archiv des Images:

docker save -o mein-node-app.tar mein-node-app
  • -o mein-node-app.tar: Speichert das Image in einer Datei namens mein-node-app.tar.
  • mein-node-app: Der Name des Images, das gesichert werden soll.

2. Docker-Image wiederherstellen (importieren)

Um ein gesichertes Image auf einem anderen System zu importieren, verwenden Sie den Befehl docker load:

docker load -i mein-node-app.tar

Dies lädt das Image wieder in Ihre lokale Docker-Installation.


Lokale Docker-Registry einrichten

Eine Docker-Registry dient als zentraler Speicherort, um Docker-Images zu speichern und freizugeben. Während Docker Hub eine öffentliche Registry ist, können Sie auch eine eigene lokale Docker-Registry betreiben. Dies ist besonders nützlich für private Projekte oder für den Einsatz in einem abgeschlossenen Netzwerk.

1. Lokale Registry als Docker-Container starten

Docker bietet bereits ein offizielles Image für eine einfache Registry. Sie können diese wie folgt als Container starten:

docker run -d -p 5000:5000 --name registry registry:2
  • -d: Startet den Container im Hintergrund.
  • -p 5000:5000: Bindet die lokale Portnummer 5000 an den Port 5000 im Container, sodass die Registry unter localhost:5000 erreichbar ist.
  • registry:2: Das offizielle Docker-Registry-Image (Version 2).

Die Registry läuft nun lokal auf Ihrem Rechner und ist über http://localhost:5000 zugänglich.


Docker-Images in der lokalen Registry speichern und abrufen

1. Image in die lokale Registry hochladen (pushen)

Sobald Ihre lokale Registry läuft, können Sie Images dorthin verschieben. Dazu müssen Sie das Image mit dem Namen Ihrer Registry taggen und dann hochladen.

Schritt 1: Image taggen

docker tag mein-node-app localhost:5000/meine-node-app:1.0

Schritt 2: Image in die lokale Registry hochladen

docker push localhost:5000/meine-node-app:1.0

Dieser Befehl lädt das Image in Ihre lokale Registry hoch, und es ist nun dort gespeichert.

2. Image aus der lokalen Registry abrufen (pull)

Auf einem anderen Rechner im Netzwerk (oder auf demselben Rechner) können Sie das Image aus Ihrer lokalen Registry abrufen (pullen), indem Sie folgenden Befehl verwenden:

docker pull localhost:5000/meine-node-app:1.0

Das Image wird heruntergeladen und kann anschließend verwendet werden, um Container zu starten.

3. Lokale Images verwalten

Um alle in Ihrer lokalen Registry gespeicherten Images zu sehen, können Sie eine einfache API-Abfrage ausführen:

curl http://localhost:5000/v2/_catalog

Dieser Befehl gibt eine Liste aller Images zurück, die in der Registry gespeichert sind.


Fazit

In diesem Tutorial haben wir gelernt, wie Sie eigene Docker-Images erstellen, verwalten und sichern. Außerdem haben wir die Einrichtung einer lokalen Docker-Registry besprochen, um Images privat zu speichern und im Netzwerk zu verteilen. Mit diesen Werkzeugen können Sie Ihre Docker-Workflows besser organisieren und Ihre Images effizienter verwalten.

Docker bietet nicht nur eine leistungsstarke Container-Plattform, sondern auch flexible Möglichkeiten, wie Images gespeichert und geteilt werden können – lokal und in der Cloud. Nutzen Sie diese Fähigkeiten, um Ihre Anwendungen effizient zu betreiben und sicher aufzubewahren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert