Docker-Compose


Einleitung

Docker-Compose ist eine weitere CLI, die mit Docker installiert wird. Ähnlich wie das Dockerfile bei Images gibt es hier die docker-compose.yml Datei, in der die einzelnen Schritte aufgelistet werden. Die Syntax ist allerdings etwas anders, als die einzelnen Aufrufe direkt in der Docker-CLI. Besonders charmant ist die Tatsache, dass sich docker-compose ganz automatisch darum kümmert, dass sich die Container untereinander im Netz sehen können. Wenn Du Dich für die Grundlagen von Docker interessierst findest Du hier den passenden Artikel dazu.

docker-compose.yml

Hier ist ein einfaches Beispiel für eine Steuerdatei für docker-compose

# Version von docker-compose, die verwendet werden soll
version: '3'

# Hier wird beschrieben, womit wir den gewünschten Dienst/
# Anwendung erzeugen wollen.
# 1. mit dem Redis-Image
# 2. mit dem im Dockerfile beschriebenen Workflow
# 3. Portforwarding (das '-' erzeugt ein Array)
services:
  hutzelbutzel:  # Das ist der Name, über den der Container später im Netz angesprochen werden kann
    image: 'redis'
  node-app:
    restart: always
    build: .
    ports:  # Hier wird der Container-interne Port 8081 nach draussen auf den Port 4001 umgelenkt. Das hat nichts mit der internen Container-Kommunikation zu tun
      - "4001:8081"

Die Restart Optionen sind: "no", always, on-failure, unless-stopped
WICHTIG: Die Option no muss immer in Anführungszeichen stehen, weil no ein reserviertes Wort in YAML-Files ist.

docker-compose Befehle

Damit die Konfiguration aus dem YAML-File übernommen wird, muss man für den Aufruf der Befehle im gleichen Verzeichnis stehen, in dem das YAML-File liegt.

Starten

docker-compose up Beim ersten Start und nach Anpassungen am YAML-File muss noch der build Befehl angefügt werden: docker-compose up --build Soll die Konsole danach für weitere Befehle wieder freigegeben werden kommt noch ein -d dazu.

Beenden

docker-compose down