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