Den Docker Run-Befehl meistern: Eine umfassende Anleitung
Die docker-run-Flags, die man wirklich braucht: --name, -p, -v, -e, -d und --rm, und was der jeweilige Standardwert kostet, wenn man ihn einfach stehen lässt.

Die Verwendung von Docker in der modernen Softwareentwicklung ist weit verbreitet, und das aus gutem Grund. Docker hilft Entwicklern, leichtgewichtige und portable Software-Container zu erstellen, die die Anwendungsbereitstellung vereinfachen. Einer der leistungsfahigsten Befehle in Dockers Command-Line Interface (CLI) ist der docker run-Befehl. Seine enorme Anzahl an Optionen kann ihn jedoch fur Anfanger etwas einschuchternd machen.
In diesem Blogbeitrag werden wir den docker run-Befehl entmystifizieren und erklaren, wie man seine Fahigkeiten nutzt, um Docker-Container effektiv auszufuhren. Lass uns anfangen!
Der Docker Run-Befehl
In seiner grundlegendsten Form erstellt der docker run-Befehl einen neuen Container aus einem Docker-Image und startet ihn. Dieser Befehl bietet jedoch eine Vielzahl von Optionen zur Anpassung deiner Container an die Bedurfnisse deiner Anwendung. So sieht die Befehlsstruktur aus:
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
Lass uns nun tiefer in einige der am haufigsten verwendeten Optionen eintauchen:
Name (--name)
Einem Docker-Container einen benutzerdefinierten Namen zuzuweisen, kann unglaublich nutzlich sein, besonders wenn du mit mehreren Containern arbeitest. Du kannst einen Namen fur deinen Docker-Container mit dem Flag --name angeben:
docker run -d --name my_container ubuntu
Port-Mapping (-p oder --publish)
Docker ermoglicht es dir, einen Netzwerkport innerhalb deines Docker-Containers auf einen Port auf deinem Host-Rechner abzubilden, unter Verwendung des Flags -p oder --publish. Diese Funktion ist essenziell bei der Bereitstellung von Diensten, die uber ein Netzwerk erreichbar sein mussen:
docker run -d -p 8080:80 ubuntu
Volume-Mounting (-v oder --volume)
Um Daten, die von deinen Docker-Containern generiert und verwendet werden, persistent zu machen oder um Daten von deinem Host zum Container bereitzustellen, stellt Docker Volumes zur Verfugung. Du kannst ein Volume mit dem Flag -v oder --volume mounten:
docker run -d -v /path/on/host:/path/in/container ubuntu
Umgebungsvariablen (-e oder --env)
Du kannst Umgebungsvariablen setzen, die der Prozess innerhalb deines Docker-Containers verwenden kann. Diese Variablen sind eine gute Moglichkeit, Konfigurationseinstellungen fur deine Anwendung bereitzustellen:
docker run -d -e "ENV_VAR=value" ubuntu
Link (--link)
Die Option --link ermoglicht es Containern, sich gegenseitig zu erkennen und Informationen uber einen Container sicher an einen anderen zu ubertragen.
docker run -d --link database:db ubuntu
Speicher (-m oder --memory)
Die Speichernutzung eines Containers zu begrenzen, kann bei der Verwaltung von Ressourcen auf deinem Docker-Host entscheidend sein. Das Flag -m oder --memory ermoglicht es dir, die Speichernutzung eines Containers zu begrenzen:
docker run -d -m 512m ubuntu
Netzwerk (--net)
Die Option --net ermoglicht es dir, den Netzwerkmodus fur den Container festzulegen. Zum Beispiel lasst --net=host den Container den Netzwerkstack des Hosts verwenden:
docker run -d --net=host ubuntu
Restart (--restart)
Das Flag --restart ermoglicht es dir, eine Restart-Policy festzulegen, wie Docker mit Container-Beendigungen umgehen soll. Die Option always stellt sicher, dass der Container immer neu gestartet wird, was hohe Verfugbarkeit gewahrleistet:
docker run -d --restart=always ubuntu
Benutzer (--user oder -u)
Die Option --user ermoglicht es dir, den Benutzer anzugeben, der den Befehl im Container ausfuhrt. Dies kann nutzlich sein, um korrekte Dateiberechtigungen sicherzustellen oder die Sicherheit des Containers zu erhohen:
docker run -d --user=username ubuntu
Arbeitsverzeichnis (-w oder --workdir)
Die Option -w oder --workdir legt das Arbeitsverzeichnis innerhalb des Containers fur alle darauf folgenden RUN-, CMD-, ENTRYPOINT-, COPY- und ADD-Anweisungen in der Dockerfile fest:
docker run -d -w /path/to/dir/ ubuntu
Sehen wir uns nun ein Beispiel fur einen docker run-Befehl an, der mehrere Optionen enthalt:
docker run -d \
--name my_container \
-p 8080:80 \
-v /path/on/host:/path/in/container \
-e "ENV_VAR=value" \
--link database:db \
-m 512m \
--net=host \
--restart=always \
--user=username \
-w /path/to/dir/ \
ubuntu
Diese Befehlskette bietet eine leistungsfahige, flexible Moglichkeit, Docker-Container zu konfigurieren und zu verwalten, um verschiedene Anforderungen zu erfullen. Denk daran, dass nicht alle Optionen in jedem Fall zusammen verwendet werden mussen; passe den Befehl an deine spezifischen Anforderungen an.
Zusammenfassung
Zusammenfassend ist der docker run-Befehl ein vielseitiges Werkzeug, das Entwickler befahigt, Docker-Container effizient zu verwalten und zu steuern. Durch das Verstandnis und die effektive Nutzung dieser Optionen kannst du deinen Docker-Workflow und deine Produktivitat erheblich verbessern.
Diese Anleitung kratzt nur an der Oberflache der Docker-Fahigkeiten. Ich ermutige dich, die Docker-Dokumentation zu erkunden und mit diesen Optionen zu experimentieren, um ein Gefuhl dafur zu bekommen, was mit Docker moglich ist.
Ob du Entwickler, DevOps-Profi oder IT-Administrator bist -- die Beherrschung des docker run-Befehls ist eine wesentliche Fahigkeit, die dir auf deiner Docker-Reise sicherlich gute Dienste leisten wird.
Viel Spass beim Dockern!
Weiteres von Ercan
Zwei weitere Seiten, gleicher Autor, anderes Terrain.
KI, LLMs, Agents, angewandte ML.
Praxisnotizen zu KI-Workloads. Bedrock-Kostenanalyse, Agent-Patterns, Vektorspeicher-Tradeoffs, Failure-Modes in Produktion.
Besuchen ercan.ai →Die Drehscheibe. Über mich, Beratung, Kontakt.
Persönliche Drehscheibe für beide Schreibspuren. Wer ich bin, wie die Beratung funktioniert, wie Sie mich erreichen.
Besuchen ercanermis.com →