Docker & Containers

Docker-RunDen Startbefehl zusammenstellen

Image und Zuordnungen festlegen, dann den erzeugten POSIX-Befehl prüfen.

Docker-Run

Aufgabenparameter

Ports

Mounts

Umgebungsvariablen

Befehlsvorschau

docker run \
  --detach \
  'nginx:alpine'

Für POSIX sh unter macOS, Linux oder WSL. Pfade bleiben wörtlich; Variablen und ~ werden nicht aufgelöst.

Die Konfiguration bleibt im Browser. Keine Docker-Verbindung, Registry-Abfrage oder Befehlsausführung.

Optionen

Maximal 20 Zeilen je Gruppe. CPU: 0.001–1024. Speicher: ganze Zahl b/k/m/g, mindestens 6 MiB; leer bedeutet ungesetzt.

Befehlsvorschau ist aktuell.

Ein Startbefehl wächst schnell aus mehreren Beispielen zusammen: Hier eine Portnummer, dort ein Verzeichnis und noch eine Variable. Bei Docker-Run hilft die getrennte Eingabe dabei, Host und Container auseinanderzuhalten und alte Einstellungen nicht versehentlich zu übernehmen.

Anfangs ist nginx:alpine mit Hintergrundbetrieb ausgewählt. Es werden keine Ports veröffentlicht und keine Ressourcenlimits gesetzt. Leere Optionen entfallen. Einstiegspunkt und Startkommando bleiben dem Image überlassen; notwendige Passwörter oder Anwendungsverzeichnisse werden nicht geraten.

Warum Docker-Run mit getrennten Feldern aufbauen?

Zuordnungen vor der Shell-Syntax klären

Für Docker-Run werden Hostport, Containerport, Mount-Quelle und Variablenwert getrennt erfasst. Die Ausgabe fasst jeden Wert als eigenes, korrekt zitiertes Argument zusammen. Sobald eine Einstellung geändert wird, lässt sich das bisherige Ergebnis nicht mehr exportieren.

Zeilen für Image, Ports und Mounts werden zu einer gemeinsamen Befehlsvorschau verbunden.

Freigaben und sensible Werte prüfen

Privilegierter Betrieb, sensible Bind-Pfade und Portfreigaben außerhalb von Loopback erhalten sichtbare Warnungen. ENV-Werte sind zunächst im Feld und im Ergebnis maskiert. Erst nach ausdrücklichem Anzeigen ist der vollständige Export möglich; die Maskierung ist keine Verschlüsselung.

Maskierte Umgebungswerte und gesperrter Export neben Warnungen für Privilegien und Host-Mounts.

Drei Entscheidungen vor dem Terminal

01

Bind-Adresse bewusst wählen

Neue Portzeilen beginnen mit 127.0.0.1 und TCP. Ein leeres Adressfeld bedeutet alle Interfaces, nicht eine automatisch gewählte private Adresse. Der Containerport muss weiterhin zum Dienst im Image passen, auch wenn Sie außen eine andere Nummer wählen.

02

Verzeichnis oder Volume unterscheiden

Für einen absoluten Pfad auf dem Docker-Host wählen Sie bind, für von Docker verwalteten Speicher volume. Neue Mounts sind schreibgeschützt. Wenn eine Anwendung schreiben muss, deaktivieren Sie den Schutz ausdrücklich und prüfen Quelle und Ziel.

03

Mehrere Änderungen gesammelt anwenden

Automatische Erstellung wartet 350 ms nach der letzten Eingabe. Ohne Automatik aktualisieren Schaltfläche oder Strg/Cmd+Enter das Ergebnis. Beispiel, Leeren und Zeilenlöschen zeigen zuerst eine Vorschau; ein Rückgängig-Schritt stellt Eingabe und Ergebnis wieder her.

Welche Argumente entstehen?

Portmapping mit klarer Richtung

Jede Zeile erzeugt ein --publish-Argument mit IPv4-Adresse, Hostport, Containerport und TCP oder UDP. Überschneidungen derselben Hostport-Protokoll-Kombination werden abgewiesen. TCP und UDP dürfen dieselbe Nummer verwenden. Ob ein Prozess den Port schon belegt, kann das Formular nicht feststellen.

Explizite Speicherzuordnung

Bind-Mounts verweisen auf Dateien oder Verzeichnisse des Hosts, benannte Volumes auf Docker-Speicher. --mount enthält den Typ und gegebenenfalls readonly. Doppelte normalisierte Containerziele werden abgewiesen, damit nicht eine Zeile eine andere Zuordnung verdeckt.

Umgebungsvariablen bleiben wörtlich

Leerzeichen, Gleichheitszeichen, Apostrophe und Dollarzeichen bleiben Teil eines einzigen Arguments. Ein leerer Wert wird ausdrücklich als KEY= ausgegeben. Doppelte Schlüssel sind Fehler. Das Werkzeug liest keine Hostvariablen und expandiert weder $HOME noch Ausdrücke zur Befehlsersetzung.

Laufzeit und Ressourcen

Name, Hintergrundbetrieb, interaktives TTY, Löschung beim Beenden, Neustartstrategie sowie CPU und Speicher lassen sich kombinieren. --rm und eine andere Neustartstrategie als no blockieren die Erstellung. Leere Ressourcenfelder erzeugen keine Begrenzung; gesetzte Werte reservieren keine Hardware.

Geltungsbereich und Grenzen

Ein Befehl für POSIX
Die Ausgabe ist für POSIX sh unter Linux, macOS oder WSL mit Linux-Containerpfaden gedacht. PowerShell, CMD, Import vorhandener Befehle, Compose, Dockerfile, freie Zusatzflags und eigene Startkommandos sind ausgeschlossen. Es findet weder eine Docker-Ausführung noch eine Registry-Abfrage statt.
Begrenzte Image- und Portsyntax
Unterstützt sind kleingeschriebene Repository-Pfade, optional eine DNS- oder IPv4-Registry mit Port, Tags und sha256-Digests. IPv6-Registries, reine Image-IDs und andere Digest-Verfahren fehlen. Ports sind einzelne Zahlen von 1 bis 65535; Bereiche, Zufallsports, IPv6-Bindings und SCTP sind nicht vorgesehen.
Eindeutige Mount-Pfade
Bind-Quellen müssen absolut sein, Ziele ebenfalls und dürfen nicht die Wurzel sein. Kommas, doppelte Anführungszeichen, Backslashes, Steuerzeichen sowie . und .. als Pfadsegmente werden abgewiesen. Leerzeichen und Apostrophe bleiben erlaubt. Volume-Namen haben 2–255 Zeichen aus Buchstaben, Ziffern, Punkt, Unterstrich und Bindestrich und beginnen alphanumerisch.
Feste Eingabegrenzen
Jede Gruppe erlaubt 20 Zeilen, jedes Textfeld 4096 UTF-16-Einheiten, alle Texte zusammen 65536. CPU-Werte reichen von 0.001 bis 1024 mit höchstens drei Nachkommastellen. Speicher ist eine Ganzzahl mit optional b/k/m/g, mindestens 6 MiB und höchstens eine vorzeichenbehaftete 64-Bit-Bytezahl. Überschreitungen werden nicht still abgeschnitten.
Maskierung ist kein Geheimnisspeicher
Bei maskierten ENV-Werten bleiben Kopieren und Download gesperrt. Nach dem Anzeigen enthält der Export die wirklichen Werte, die später in Shell-Historie oder Containerinspektion sichtbar sein können. Variablennamen und Pfade werden nicht automatisch als Geheimnisse eingestuft.
Warnungen prüfen keine Maschine
Die Pfadprüfung erfasst Wurzel-, System- und Benutzerverzeichnisse, löst aber keine symbolischen Links auf. Auch ein schreibgeschützter Docker-Socket verlangt Prüfung. Dateiexistenz, Berechtigungen, Image-Vertrauen und Kernelunterstützung müssen auf dem tatsächlichen Host geklärt werden.

Fragen zu Docker-Run

Kann ich diese Portumleitung in Docker auch irgendwie über die Umgebungsvariablen eintragen?

Eine Umgebungsvariable konfiguriert zunächst nur die Anwendung im Container. Eine Portveröffentlichung wird dagegen durch --publish beim Start angelegt. Tragen Sie dafür Host- und Containerport in der Portgruppe ein. Eine Variable wie PORT ändert diese Zuordnung nicht automatisch.

Wie übergebe ich eine Umgebungsvariable mit Leerzeichen an Docker?

Geben Sie den Wert ohne zusätzliche Shell-Anführungszeichen ein. Der vollständige Ausdruck KEY=value wird als ein Argument zitiert. Leerzeichen und Gleichheitszeichen bleiben erhalten, $HOME bleibt wörtlicher Text. Zeilenumbrüche und Steuerzeichen werden abgewiesen.

Kann ich --rm und --restart im Dockerfile festlegen?

Das sind Laufzeitoptionen von docker run, keine Dockerfile-Anweisungen. Ein Dienst mit Neustartstrategie sollte nicht beim Beenden automatisch entfernt werden. Für einen temporären Container können Sie --rm verwenden und die Strategie auf no lassen; eine widersprüchliche Kombination ist hier ein Fehler.

Was unterscheidet Docker-Volumes von Bind-Mounts?

Ein benanntes Volume wird von Docker verwaltet. Ein Bind-Mount verbindet einen konkreten Hostpfad und kann bei Schreibfreigabe Hostdateien verändern. Wählen Sie den Typ ausdrücklich. Eine fehlende Bind-Quelle führt mit --mount normalerweise zu einem Fehler, ihre Existenz wird hier aber nicht geprüft.

Kann das Werkzeug docker-compose-YAML erzeugen?

Nein. Der Docker-Befehl beschreibt nur einen neuen Container mit dem Startverhalten seines Images. Compose modelliert zusätzlich Dienste, Netzwerke und Abhängigkeiten. Dafür wäre ein anderes Datenmodell nötig; der Shell-Text ist keine YAML-Konfiguration.

Weicht die Vorschau von der Docker-Dokumentation ab?

Vor dem Kopieren noch einmal prüfen

Mit Docker-Run legen Sie die gewünschten Argumente fest. Beheben Sie Fehler, lesen Sie die Warnungen und prüfen Sie den Zielhost, bevor Sie den Befehl exportieren.