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: