Keine Werbung mögen? Gehen Werbefrei Heute

Stoppen Sie das Schreiben von docker run-Befehlen – Verwenden Sie Docker Compose anstelle

Veröffentlicht am

Die meisten docker run-Befehle werden zu wartungsfreien Flag-Suppen. Dieser Leitfaden zeigt, wie man docker run in docker compose umwandelt – mit einer Tabelle mit Flag-Referenzen, einem echten Umwandlungsbeispiel und einem kostenlosen Umwandlungs-Tool.

Schreibe keine mehr docker run-Befehle – nutze Docker Compose statt 1
ANZEIGE Entfernen?

Jeder Docker-Workflow beginnt auf die gleiche Weise: docker run. Ein Flag, zwei Flags – beherrschbar. Doch wenn du einen Container mit Ports, Umgebungsvariablen, Volumes, einem Wiederstart-Regel und einer benutzerdefinierten Netzwerkumgebung startest, ist dieser Befehl 400 Zeichen lang und niemand kann ihn merken, er ist nicht versioniert und kannst ihn nicht an einen Teammitglied übergeben, ohne dass ein Slack-Thread voller Scham entsteht.

Docker Compose ist die Lösung. Eine YAML-Datei ersetzt den ganzen Befehl – und du kannst sie in Git speichern.

Warum docker run die Skalierung beendet

Hier ist ein typisches docker run Befehl für eine Node.js-Anwendung:

docker run -d \
  --name my-app \
  -p 3000:3000 \
  -e NODE_ENV=production \
  -e DATABASE_URL=postgres://user:pass@db:5432/mydb \
  -v ./data:/app/data \
  --network app-network \
  --restart always \
  my-app:latest

Das funktioniert. Einmal. Dann schließen Sie die Terminal-Session, öffnen drei Wochen später ein neues und haben keine Ahnung, welche Flags Sie verwendet haben. Es gibt nichts, um es git diff. Nichts, das man einem neuen Mitarbeiter zeigen kann. Keine Möglichkeit, sicherzustellen, dass die Staging-Umgebung der Produktionsumgebung entspricht.

Was Docker Compose dir bietet

Docker Compose nimmt alles, was in jenen docker run Befehl gesteckt wurde, und legt es in eine YAML-Datei namens docker-compose.yml. Diese Datei:

  • Läuft in deinem Repository neben dem Code
  • Startet mit einem einzigen docker compose up -d
  • Funktioniert identisch auf jeder Maschine und Umgebung
  • Kann auf Mehrdienstkonfigurationen (App + Datenbank + Cache) skaliert werden, ohne sich mit Flags zu beschäftigen

Wie man einen docker run-Befehl in ein docker-compose.yml konvertiert

Dieser Befehl wird zu diesem docker-compose.yml:

version: "3.9"
services:
  my-app:
    image: my-app:latest
    container_name: my-app
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
      DATABASE_URL: postgres://user:pass@db:5432/mydb
    volumes:
      - ./data:/app/data
    networks:
      - app-network
    restart: always

networks:
  app-network:

Gleiche Funktion. Aber jetzt ist er lesbar, in Git gespeichert und reproduzierbar.

Starte es:

docker compose up -d

Stopp es:

docker compose down

docker run-Flags zu docker-compose.yml-Schlüsseln

Ein Referenzpunkt für die Flags, die du häufig verwendest:

docker run-Flagdocker-compose.yml-SchlüsselBeispiel
-p 8080:80ports:- "8080:80"
-e FOO=barenvironment:FOO: bar
-v ./data:/datavolumes:- ./data:/data
--network mynetnetworks:mynet
--restart alwaysrestart:always
--name mycontainercontainer_name:mycontainer
--memory 512mmem_limit:512m
--cpus 1.5deploy.resources.limits.cpuscpus: "1.5"
-dVerwenden Sie -d Flag zur Laufzeitdocker compose up -d

Automatisch konvertieren

Wenn du einen langen bestehenden docker run Befehl hast – besonders wenn er aus einer README oder einem CI-Skript stammt, das seit zwei Jahren nicht mehr aktualisiert wurde – musst du nicht jedes Flag manuell abgleichen. Nutze das Docker Run to Compose Converter: Füge den Befehl ein, erhält ein gültiges docker-compose.yml Ergebnis.

Es behandelt Ports, Umgebungsvariablen, Volumes, Netzwerke, Wiederstartregeln und mehr. Nützlich, um alte Einzeiler ohne Eingabe von Tippfehlern zu migrieren.

Wenn du Ressourcengrenzen in deiner Compose-Datei konfigurierst, hilft der Docker Container Ressourcenrechner dich, sinnvolle Speichermengen und CPU-Werte basierend auf deiner Last auszuwählen – bevor du Zahlen aus dem Nichts übernimmst.

Prüfe deinen Dockerfile währenddessen

Sobald dein Compose-Datei sortiert ist, überprüfe den Dockerfile, aus dem sie gebaut wird. Ungepfifft Basismodule, fehlende WORKDIR, unnötige RUN Schichten – diese sind leicht zu verpassen und später ärgerlich zu debuggen. Der Dockerfile-Prüfer fängt sie vor der Produktion ab.

Möchten Sie werbefrei genießen? Werde noch heute werbefrei

Erweiterungen installieren

IO-Tools zu Ihrem Lieblingsbrowser hinzufügen für sofortigen Zugriff und schnellere Suche

Zu Chrome-Erweiterung Zu Kantenerweiterung Zu Firefox-Erweiterung Zu Opera-Erweiterung

Die Anzeigetafel ist eingetroffen!

Anzeigetafel ist eine unterhaltsame Möglichkeit, Ihre Spiele zu verfolgen. Alle Daten werden in Ihrem Browser gespeichert. Weitere Funktionen folgen in Kürze!

ANZEIGE Entfernen?
ANZEIGE Entfernen?
ANZEIGE Entfernen?

Nachrichtenecke mit technischen Highlights

Beteiligen Sie sich

Helfen Sie uns, weiterhin wertvolle kostenlose Tools bereitzustellen

Kauf mir einen Kaffee
ANZEIGE Entfernen?