compose.yaml-Dateien erstellen

Docker für Fortgeschrittene

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • Textdatei, bei der Einrückungen zählen (wie in Python)
  • In vielen Entwicklungsszenarien für Konfigurationen genutzt
  • Regeln können knifflig sein – richte Einträge wie in den Beispielen aus
services:
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
      - "5432:5432"
    restart: always
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:latest
    ports:
      - "5050:80"
    restart: always
Docker für Fortgeschrittene

Hauptabschnitte

  • Verschiedene Abschnitte steuern unterschiedliche Komponenten
  • services: listet die zu startenden Container
  • networks: definiert Netzwerkdetails
  • volumes: steuert das Einbinden von Volumes
  • configs: verwaltet Konfigurationsoptionen ohne eigene Images
  • secrets: bietet Optionen für Passwörter, Token, API-Schlüssel usw.
  • Sieh dir die Docker Compose Documentation für Details an
services:
  ... # Define containers

networks: ... # Define any networking details
volumes: ... # Define storage requirements
configs: ... # Define special config details
secrets: ... # Define passwords / etc
1 https://docs.docker.com/compose/compose-file/
Docker für Fortgeschrittene

Abschnitt services

  • Definiert alle benötigten Ressourcen der Anwendung
  • Gibt vor allem die zu nutzenden Container und Images an
  • Viele Optionen vorhanden, gelten aber nur je Container
  • Einrückungen je nach Bedarf
  • Erste Unterebene: Name jeder Komponente, dann die Einstellungen
Docker für Fortgeschrittene

Beispiel: services

services:

# Resource name postgres:
# Container name, otherwise random container_name: postgres
# Container image to use image: postgres:latest
# Any port mapping required ports: # Network details - "5432:5432"
# Next resource pgadmin: ...
  • Ressourcenname
  • container_name: der vergebene Containername, sonst zufällig
  • image: welches Container-Image verwendet wird
  • ports: enthält eine Liste benötigter Port-Zuordnungen
  • Danach folgen die nächsten Ressourcen
Docker für Fortgeschrittene

Weitere Hinweise

  • Die Syntax von config.yaml ist umfangreich
    • Hier nur ein kleiner Teil der compose.yaml-Optionen
    • Lies die Dokumentation!
  • Meist musst du compose.yaml nicht von Grund auf neu schreiben
1 https://docs.docker.com/compose/compose-file/
Docker für Fortgeschrittene

Lass uns üben!

Docker für Fortgeschrittene

Preparing Video For Download...