Wie man docker run verwendet

Lass uns über den docker run
Befehl sprechen, ein grundlegendes Tool zum Erstellen und Ausführen von Docker-Containern. Dieser Befehl ist unkompliziert, bietet aber zahlreiche Optionen, mit denen Du die Umgebung Deines Containers perfekt an Deine Bedürfnisse anpassen kannst.
Einen Container erstellen und ausführen
Die grundlegende Syntax für docker run
ist:
docker run [OPTIONEN] IMAGE [BEFEHL] [ARG...]
Dieser Befehl macht einige wichtige Dinge:
- Erstellt einen neuen Container aus dem angegebenen Image.
- Lädt das Image herunter, wenn es noch nicht auf Deinem System ist.
- Startet den Container und führt den angegebenen Befehl darin aus.
Wenn Du beispielsweise einen einfachen Ubuntu-Container ausführen möchtest, der "Hello, Docker!" ausgibt, könntest Du Folgendes verwenden:
docker run ubuntu echo "Hello, Docker!"
Dieser Befehl lädt das Ubuntu-Image herunter (falls noch nicht vorhanden), erstellt einen neuen Container und führt dann den echo
-Befehl im Container aus.
Deinem Container einen Namen geben
Du kannst Deinem Container mit dem Flag --name
einen benutzerdefinierten Namen geben. Das macht es einfacher, Deine Container später zu verwalten und auf sie zu verweisen. Zum Beispiel:
docker run --name mein-ubuntu-container ubuntu
Dies startet einen Ubuntu-Container mit dem Namen mein-ubuntu-container
. Du kannst diesen Namen dann verwenden, um mit dem Container zu interagieren, zum Beispiel um ihn zu stoppen:
docker stop mein-ubuntu-container
Im Hintergrund ausführen
Wenn Du möchtest, dass Dein Container im Hintergrund läuft, verwende das Flag -d
oder --detach
. Das ist nützlich für langlebige Dienste. Um beispielsweise einen Nginx-Server im Hintergrund zu starten:
docker run -d --name mein-nginx nginx
Dieser Befehl startet einen Nginx-Container im Hintergrund, so dass Du Dein Terminal weiterhin für andere Aufgaben nutzen kannst.
Ressourcen zuweisen
Du kannst die Ressourcen steuern, die Dein Container verwendet. Um beispielsweise den verfügbaren Speicher für einen Container zu begrenzen, verwende das Flag -m
oder --memory
:
docker run -m 512m ubuntu
Dies begrenzt den Speicherverbrauch des Containers auf 512 Megabyte.
Umgebungsvariablen setzen
Du kannst Umgebungsvariablen im Container mit dem Flag -e
oder --env
setzen. Das ist praktisch, um Anwendungen zu konfigurieren, ohne das Image zu verändern. Zum Beispiel:
docker run -e MEINE_VAR=hallo ubuntu echo $MEINE_VAR
Dies setzt eine Umgebungsvariable MEINE_VAR
auf hallo
und gibt sie dann im Container aus.
Ports freigeben und veröffentlichen
Um die Ports eines Containers vom Host aus zugänglich zu machen, verwende das Flag -p
oder --publish
. Um beispielsweise Port 80 eines Nginx-Containers auf Port 8080 des Hosts freizugeben:
docker run -p 8080:80 nginx
Dies ordnet Port 8080 auf dem Host dem Port 80 im Container zu.
Volumes mounten
Du kannst Verzeichnisse von Deinem Host in den Container einbinden, indem Du das Flag -v
oder --volume
verwendest. Das ist nützlich, um Daten dauerhaft zu speichern. Zum Beispiel:
docker run -v /host/pfad:/container/pfad ubuntu
Dies bindet das Verzeichnis /host/pfad
auf Deinem Host an /container/pfad
im Container.
Aufräumen
Wenn Docker den Container und seine anonymen Volumes automatisch entfernen soll, nachdem er beendet wurde, verwende das Flag --rm
:
docker run --rm ubuntu echo "Hello, Docker!"
Dieser Befehl führt den Container aus, gibt die Nachricht aus und räumt danach auf.
Neustart-Richtlinien
Du kannst eine Neustart-Richtlinie für Deinen Container mit dem Flag --restart
festlegen. Um beispielsweise sicherzustellen, dass ein Container immer neu gestartet wird, es sei denn, er wird manuell gestoppt:
docker run --restart unless-stopped nginx
Diese Richtlinie sagt Docker, dass der Nginx-Container neu gestartet werden soll, es sei denn, er wird explizit gestoppt.
Interaktiver Modus
Für interaktive Sitzungen verwende das Flag -i
oder --interactive
zusammen mit dem Flag -t
oder --tty
, um ein Pseudo-TTY zuzuweisen:
docker run -it ubuntu bash
Dies startet einen Ubuntu-Container und öffnet eine Bash-Shell darin, so dass Du direkt mit dem Container interagieren kannst.
Weitere Optionen
Es gibt noch viele weitere Optionen für docker run
, wie zum Beispiel:
--add-host
zum Hinzufügen von benutzerdefinierten Host-zu-IP-Zuordnungen.--cap-add
und--cap-drop
zum Hinzufügen oder Entfernen von Linux-Fähigkeiten.--device
zum Hinzufügen von Host-Geräten zum Container.--network
zum Verbinden des Containers mit einem bestimmten Netzwerk.
Jede dieser Optionen ermöglicht es Dir, die Umgebung und das Verhalten Deines Containers genau anzupassen, was docker run
zu einem vielseitigen Werkzeug für die Container-Verwaltung macht.