Zum Inhalt

Cheatsheet 5.1 - Docker Compose Befehle

Services werden in der docker-compose.yml definiert. Diese muss sich im aktuellen Verzeichnis befinden. <Service...> kann durch einen oder mehrere Services ersetzte werden. Man kann es auch komplett weg lassen, dann wird der Befehl auf alle Services angewendet.

Befehl Aktion
docker compose up -d <Service...> Einen oder mehrere Services erstellen und starten
docker compose down Alle Services stoppen und löschen (inkl. Netzwerke)
docker compose down -v Alle Services, Netzwerke, Volumes stoppen und löschen
docker compose build <Service...> Einen oder mehrere Services bauen
docker compose pull <Service...> Die Images von einem oder mehreren Services pullen
docker compose up -d --build --pull always <Service...> Services bauen oder pullen; Services starten
docker compose logs <Service...> Die Logs von einem oder mehreren Services ausgeben
docker compose ps Die laufenden Container anzeigen lassen
docker compose top <Service...> Die laufenden Prozesse von einem oder mehreren Services auflisten
docker compose create <Service...> Einen oder mehrere Services erstellen
docker compose start <Service...> Einen oder mehrere Services starten
docker compose stop <Service...> Einen oder mehrere Services stoppen
docker compose rm <Service...> Einen oder mehrere Services löschen
docker compose exec <Service> <Befehl> Befehl in Container mit TTY ausführen
docker compose exec -T <Service> <Befehl> Befehl in Container ohne TTY ausführen

Cheatsheet 5.2 - docker-compose.yml

Alle Einträge, die mit cw- beginnen, sind frei wählbare Namen. Alle Zeilen die mit # anfangen, sind Kommentare.

Struktur

services:
  # Einen oder mehrere Services anlegen
  cw-webapp:
    # build verweist auf ein Verzeichnis mit dem Dockerfile.
    # Diese Datei wird gebaut
    build: ./path/to/directory
    # Definiert das Image mit optionalem Tag. Wird heruntergeladen, falls nicht vorhanden
    image: <image>:<tag>
    # Meistens wird entweder 'build' oder 'image' verwendet. Beide können aber auch kombiniert werden. Für mehr Informationen: https://docs.docker.com/reference/compose-file/build/

    # Optional: überschreibt den Entrypoint
    entrypoint: /bin/bash
    # Optional: überschreibt den Befehl
    command: echo $MYSQL_USER

    # Liste abhängiger Dienste
    ## Dieser Dienst (cw-webapp) wird erst gestartet, nachdem alle
    ## abhängigen Dienste gestartet wurden
    depends_on:
      - cw-database

    # Liste der Portweiterleitungen
    ports:
      -  5000:5000

    # Liste der Volumes
    volumes:
      - cw-webapp-volume:/app/data/notes

    # Liste der Netzwerke
    networks:
      - cw-database-network


    # Liste der Umgebungsvariablen
    environment:
      - "MYSQL_USER=example-user"
      - "MYSQL_PASSWORD=..."

  # Zweiter Service:
  cw-database:
    [...]

# (Optional) Ein oder mehrere Managed Volumes anlegen
volumes:
  cw-webapp-volume:

# (Optional) Ein oder mehrere Netzwerke anlegen
networks:
  cw-database-network: