Command Builder · Docker
Docker Run Command Builder
Ports, Volumes, Umgebungsvariablen, Restart-Policy — bei docker run kommt schnell einiges zusammen. Hier klickst du dir den Befehl zusammen und bekommst ihn sauber formatiert zum Kopieren — wahlweise als docker-run-Befehl oder als fertige compose.yaml, mit einer Erklärung für jede Option.
Vorlage übernehmen:
Optionen
Ports
Leitet einen Port des Hosts an den Container weiter — Schema Host-Port:Container-Port.
Volumes
Bindet einen Ordner des Hosts in den Container ein — Daten überleben so das Neuerstellen des Containers.
Environment-Variablen
Setzt eine Umgebungsvariable im Container — viele Images werden darüber konfiguriert.
Erweiterte Optionen▾
Labels
Metadaten am Container — z. B. für Traefik-Routing oder Watchtower.
Generierter Befehl
docker run -d \
--name nginx \
--restart unless-stopped \
-p 8080:80 \
-v /srv/nginx:/usr/share/nginx/html \
-e TZ=Europe/Berlin \
nginx:latestDas bedeuten die Parameter
-d- Startet den Container im Hintergrund — Logs später mit docker logs ansehen.
--name- Fester Name statt eines zufälligen — macht docker logs nginx und docker stop nginx möglich.
--restart- Startet den Container nach Reboot oder Absturz automatisch neu — außer du hast ihn selbst gestoppt.
-p- Leitet einen Port des Hosts an den Container weiter — Schema Host-Port:Container-Port. Mit einer Host-IP wie 127.0.0.1 ist der Dienst nur lokal erreichbar statt im ganzen Netz.
-v- Bindet einen Ordner des Hosts in den Container ein — Daten überleben so das Neuerstellen des Containers.
-e- Setzt eine Umgebungsvariable im Container — viele Images werden darüber konfiguriert.
nginx:latest- Das Image aus Docker Hub oder einer eigenen Registry, mit Tag (Version) dahinter. Statt latest lieber eine feste Version angeben — dann ändert sich beim Neuerstellen nichts unbemerkt.
Die drei Dinge, die fast jeder Container braucht
Ein Dienst im Homelab läuft fast immer mit demselben Grundgerüst: -d für den Hintergrund, --restart unless-stopped, damit er Reboots übersteht, und mindestens ein Volume (-v) — denn ohne Volume sind alle Daten weg, sobald der Container neu erstellt wird. Ports folgen dem Schema Host:Container: -p 8080:80 bedeutet, dass Port 80 des Containers auf deinem Server als 8080 erreichbar ist.
Wann docker run — und wann Compose?
docker run ist perfekt zum Ausprobieren und für Einmal-Aufgaben (mit --rm räumt sich der Container selbst weg). Sobald ein Dienst dauerhaft laufen soll oder mehrere Container zusammenspielen, lohnt der Umstieg auf Docker Compose — die Optionen heißen dort praktisch gleich, nur als YAML statt als Flags. Genau dafür hat der Builder den Reiter compose.yaml: dieselben Eingaben, fertig als Compose-Datei zum Kopieren.
Alle Optionen im Überblick
| Option | Bedeutung | Erklärung |
|---|---|---|
Image | Image | Das Image aus Docker Hub oder einer eigenen Registry, mit Tag (Version) dahinter. Statt latest lieber eine feste Version angeben — dann ändert sich beim Neuerstellen nichts unbemerkt. |
Befehl im Container (optional) | Befehl im Container (optional) | Überschreibt den Standard-Befehl (CMD) des Images. |
-d | Detached (im Hintergrund) | Startet den Container im Hintergrund — Logs später mit docker logs ansehen. |
-i | Interactive | Hält die Eingabe offen — zusammen mit TTY für eine Shell im Container. |
-t | TTY | Weist ein Terminal zu — zusammen mit Interactive (-it) für interaktive Nutzung. |
--rm | Nach Beenden löschen | Räumt den Container nach dem Beenden automatisch weg — gut für Einmal-Tests, nicht für Dienste. |
--name | Containername | Fester Name statt eines zufälligen — macht docker logs nginx und docker stop nginx möglich. |
--restart | Restart Policy | Bestimmt, ob Docker den Container automatisch neu startet. Nicht mit „Nach Beenden löschen“ (--rm) kombinierbar — deshalb ist die Auswahl dann ausgegraut. |
--restart unless-stopped | unless-stopped (empfohlen) | Startet den Container nach Reboot oder Absturz automatisch neu — außer du hast ihn selbst gestoppt. |
--restart always | always | Startet immer neu — auch wenn du den Container manuell gestoppt hattest. |
--restart on-failure | on-failure | Startet nur nach einem Absturz (Exit-Code ≠ 0) neu. |
--network | Netzwerk | Bestimmt, wie der Container ans Netzwerk angebunden wird. |
--network host | host | Der Container nutzt direkt den Netzwerk-Stack des Hosts — Port-Weiterleitungen entfallen. ⚠ --network host hebt die Netzwerk-Isolation auf: Der Container lauscht direkt auf den Ports des Hosts, -p-Weiterleitungen wirken nicht mehr. |
--network none | none | Kein Netzwerk — der Container ist komplett offline. |
--privileged | Privileged | Voller Zugriff auf Geräte und Kernel-Funktionen des Hosts — nur für Sonderfälle. ⚠ --privileged gibt dem Container praktisch Root-Rechte auf dem Host — die Isolation ist damit weitgehend aufgehoben. |
-p | Ports | Leitet einen Port des Hosts an den Container weiter — Schema Host-Port:Container-Port. Mit einer Host-IP wie 127.0.0.1 ist der Dienst nur lokal erreichbar statt im ganzen Netz. |
-v | Volumes | Bindet einen Ordner des Hosts in den Container ein — Daten überleben so das Neuerstellen des Containers. |
-e | Environment-Variablen | Setzt eine Umgebungsvariable im Container — viele Images werden darüber konfiguriert. |
--label | Labels | Metadaten am Container — z. B. für Traefik-Routing oder Watchtower. |
--hostname | Hostname | Hostname innerhalb des Containers. |
-w | Working Directory | Arbeitsverzeichnis, in dem Befehle im Container starten. |
--user | User (UID:GID) | Startet Prozesse im Container als dieser Benutzer statt als Root. |
--memory | Memory-Limit | RAM-Obergrenze für den Container, z. B. 512m oder 2g. |
--cpus | CPU-Limit | CPU-Obergrenze in Kernen, z. B. 1.5. |
Häufige Fragen
Kann ich einen bestehenden docker-run-Befehl in Compose umwandeln?
Der Builder übersetzt die Eingaben aus dem Formular in beide Formate — er parst keine fertigen Befehle. Trag die Optionen deines Befehls einfach oben ein und wechsle dann auf den Reiter compose.yaml.
Warum taucht -d in der compose.yaml nicht auf?
Weil Compose das selbst regelt: docker compose up -d startet alle Dienste im Hintergrund. Auch --rm hat kein Compose-Gegenstück — Container werden dort mit docker compose down aufgeräumt.
Was ist der Unterschied zwischen unless-stopped und always?
Beide starten den Container nach einem Reboot oder Absturz neu. Der Unterschied zeigt sich nach einem manuellen docker stop: unless-stopped respektiert das und lässt den Container liegen, always startet ihn beim nächsten Docker-Start trotzdem wieder.
Passende Tools
Passende Guides
Docker
Docker in Proxmox: VM oder LXC-Container?
Docker unter Proxmox läuft in einer VM oder im LXC — aber nur einer der beiden Wege ist offiziell empfohlen. Die Architektur erklärt, beide Wege konkret gezeigt, mit ehrlicher Entscheidungshilfe.
Selfhosting
Uptime Kuma + Beszel: Der kostenlose Monitoring-Stack fürs Homelab
Zwei leichtgewichtige Tools, die zusammen 90 % des Homelab-Monitorings abdecken: Uptime Kuma für Dienste und SSL, Beszel für CPU, RAM, Disks und Docker — mit Compose-Setup und Alarm-Strategie.
Netzwerk
Pi-hole vs. AdGuard Home: Welcher DNS-Filter passt zu dir?
Beide blocken Werbung im ganzen Netz — aber mit unterschiedlicher Philosophie. Der ehrliche Vergleich: Funktionen, Verschlüsselung, Bedienung und eine klare Empfehlung.
Hardware
Home-Assistant-Hardware: Raspberry Pi, Green, Mini-PC oder Proxmox-VM?
Worauf Home Assistant wirklich laufen sollte: die vier sinnvollen Wege im Vergleich, warum die SD-Karte der wahre Feind ist und welche Rolle der Zigbee-Stick spielt.