Docker hat sich in der Softwareentwicklung und -bereitstellung als unverzichtbares Werkzeug etabliert, und das Docker Command Line Interface (CLI) ist eines der zentralen Werkzeuge, mit dem Entwickler und Administratoren direkt mit Docker interagieren. In diesem Blog-Beitrag werden wir die Grundlagen des Docker CLI beleuchten, die wichtigsten Befehle erläutern und ein praktisches Beispiel durchgehen, um dir zu zeigen, wie du Docker auf der Kommandozeile effektiv nutzen kannst.
1. Was ist das Docker CLI?
Das Docker Command Line Interface (CLI) ist ein Werkzeug, mit dem du direkt über die Kommandozeile (Terminal) mit Docker-Containern, -Images, -Netzwerken und anderen Docker-Komponenten arbeiten kannst. Das CLI ermöglicht es dir, Docker-Befehle auszuführen, um Container zu starten, Images zu erstellen, Volumes zu verwalten und vieles mehr.
Docker CLI ist die Schnittstelle, über die du mit dem Docker-Daemon kommunizierst, der die Container-Engine verwaltet. Mit Hilfe des CLI kannst du die komplette Lebenszyklusverwaltung von Containern steuern – von der Erstellung eines Images über das Starten eines Containers bis hin zur Überwachung und Löschung.
2. Installation und erster Docker-Befehl
Bevor wir in die Details einsteigen, musst du sicherstellen, dass Docker auf deinem System installiert ist. Wenn Docker bereits installiert ist, kannst du die Installation überprüfen, indem du folgenden Befehl in dein Terminal eingibst:
docker --version
Dies zeigt dir die aktuell installierte Docker-Version an. Um zu testen, ob Docker ordnungsgemäß funktioniert, kannst du den folgenden einfachen Befehl ausführen:
docker run hello-world
Dieser Befehl lädt das hello-world Docker-Image herunter, startet einen Container und gibt eine einfache Begrüßungsnachricht aus. Dies ist ein guter Einstieg, um sicherzustellen, dass Docker korrekt eingerichtet ist.
3. Wichtige Docker CLI Befehle
Das Docker CLI bietet eine Vielzahl von Befehlen, um Container, Images, Volumes und Netzwerke zu verwalten. Im Folgenden stellen wir dir einige der wichtigsten und am häufigsten verwendeten Docker-Befehle vor:
3.1. Docker Images
Ein Docker-Image ist die Vorlage, aus der Container erstellt werden. Du kannst mit dem Docker CLI Images herunterladen, anzeigen und erstellen.
- Images anzeigen:
docker images
Dieser Befehl listet alle lokal verfügbaren Docker-Images auf.
- Images aus Docker Hub herunterladen:
docker pull <image-name>
Dieser Befehl lädt ein Image aus Docker Hub herunter. Beispiel:
docker pull nginx
3.2. Docker Container
Container sind laufende Instanzen von Docker-Images. Sie enthalten die Anwendung und ihre Abhängigkeiten.
- Container starten:
docker run <image-name>
Dies startet einen Container basierend auf dem angegebenen Image. Wenn das Image nicht lokal vorhanden ist, wird es automatisch heruntergeladen. Beispiel:
docker run nginx
Container im Hintergrund starten:
docker run -d <image-name>
Das -d
-Flag sorgt dafür, dass der Container im Hintergrund (detached mode) läuft.
- Laufende Container anzeigen:
docker ps
Dieser Befehl zeigt alle derzeit laufenden Container an.
- Alle Container anzeigen (auch gestoppte):
docker ps -a
Dieser Befehl listet alle Container auf, unabhängig davon, ob sie gerade laufen oder gestoppt sind.
- Container stoppen:
docker stop <container-id>
Du kannst Container mit ihrer Container-ID oder ihrem Namen stoppen, die durch den Befehl docker ps
angezeigt wird. Beispiel:
docker stop f42d73b...
Container löschen:
docker rm <container-id>
Dieser Befehl löscht einen Container dauerhaft.
3.3. Docker Volumes
Volumes sind spezielle Speicherbereiche, die von Docker-Containern genutzt werden können, um Daten persistent zu speichern, die auch nach dem Löschen eines Containers bestehen bleiben.
- Volumes erstellen:
docker volume create <volume-name>
Volumes anzeigen:
docker volume ls
Volumes löschen:
docker volume rm <volume-name>
3.4. Docker Netzwerke
Docker verwendet Netzwerke, um die Kommunikation zwischen Containern zu ermöglichen. Standardmäßig wird ein „bridge“-Netzwerk verwendet, aber du kannst benutzerdefinierte Netzwerke erstellen.
- Netzwerk erstellen:
docker network create <network-name>
Netzwerk anzeigen:
docker network ls
Container zu einem Netzwerk hinzufügen:
docker run --network <network-name> <image-name>
4. Praktisches Beispiel: Eine einfache Webanwendung mit Docker
Um die Nutzung des Docker CLI besser zu verstehen, wollen wir eine kleine Übung durchgehen, bei der wir einen einfachen Nginx-Webserver in einem Docker-Container ausführen.
Schritt 1: Nginx-Image herunterladen
Zuerst laden wir das offizielle Nginx-Image aus Docker Hub herunter:
docker pull nginx
Schritt 2: Nginx-Container starten
Nun starten wir einen Container basierend auf dem Nginx-Image. Um den Webserver von unserem Host aus zugänglich zu machen, müssen wir die Ports des Containers mit den Ports unseres Hosts verbinden:
docker run -d -p 8080:80 nginx
Dieser Befehl startet den Nginx-Container im Hintergrund (-d
) und leitet den Port 80 des Containers auf den Port 8080 des Hosts weiter (-p 8080:80
).
Schritt 3: Überprüfen, ob der Container läuft
Mit dem folgenden Befehl überprüfen wir, ob unser Nginx-Container erfolgreich läuft:
docker ps
Dieser Befehl zeigt alle laufenden Container an. Du solltest den Nginx-Container in der Liste sehen.
Schritt 4: Die Nginx-Seite im Browser aufrufen
Nun kannst du die Nginx-Webseite öffnen, indem du in deinem Browser http://localhost:8080
aufrufst. Du solltest die Standard-Nginx-Begrüßungsseite sehen.
Schritt 5: Container stoppen
Wenn du mit dem Container fertig bist, kannst du ihn stoppen:
docker stop <container-id>
Verwende die Container-ID, die du durch den docker ps
Befehl erhalten hast.
Schritt 6: Container löschen
Falls du den Container nicht mehr benötigst, kannst du ihn löschen:
docker rm <container-id>
5. Fazit
Das Docker Command Line Interface (CLI) ist ein mächtiges Werkzeug, um die volle Kontrolle über Docker-Container, -Images, -Netzwerke und -Volumes zu erlangen. In diesem Beitrag haben wir die wichtigsten Befehle durchgesprochen, mit denen du effektiv mit Docker arbeiten kannst. Von der Verwaltung von Containern über die Erstellung von Volumes bis hin zur Netzwerkkonfiguration – das Docker CLI bietet alles, was du benötigst, um eine containerisierte Umgebung zu betreiben.
Durch das CLI hast du die Flexibilität, deine Docker-Umgebung vollständig anzupassen und zu automatisieren. Mit etwas Übung wirst du in der Lage sein, Docker-Befehle schnell und effizient in deinen täglichen Entwicklungs- und Betriebsabläufen zu nutzen.