2.5 KiB
2.5 KiB
Vortrags-Script: Docker Compose Basics
Einführung Docker Compose
Zweck und Vorteile
- Definition: Tool zur Verwaltung mehrerer Container als Anwendung
- Installation prüfen:
docker-compose --version
YAML-Syntax
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: secret
Grundbefehle
docker-compose up
docker-compose up -d
docker-compose down
docker-compose ps
docker-compose logs
docker-compose logs -f web
Mehrcontainer-Anwendungen
Service-Abhängigkeiten
services:
web:
depends_on:
- db
docker-compose up -d db
docker-compose up -d web
Umgebungsvariablen
echo "DB_PASSWORD=secret" > .env
docker-compose up -d
Schaubild Docker-Netzwerke
Netzwerke zwischen Containern
docker-compose exec web ping db
docker network ls
docker network inspect <project_name>_default
Docker Compose in Entwicklung
Hot-Reloading
docker-compose exec web ls -la /var/www/html
# Änderung an lokaler Datei vornehmen
docker-compose exec web cat /var/www/html/index.php
Debugging
docker-compose logs -f
docker-compose exec web bash
docker-compose exec -T web php -v
Ressourcenkontrolle
docker stats $(docker-compose ps -q)
Zusammenfassung und Beispiel
Komplettes Beispiel: LAMP-Stack
version: '3'
services:
web:
build: ./php
ports:
- "8000:80"
volumes:
- ./src:/var/www/html
depends_on:
- db
environment:
DB_HOST: db
DB_USER: app
DB_PASSWORD: secret
DB_NAME: myapp
db:
image: mysql:8.0
volumes:
- db-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootsecret
MYSQL_DATABASE: myapp
MYSQL_USER: app
MYSQL_PASSWORD: secret
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
environment:
PMA_HOST: db
depends_on:
- db
volumes:
db-data:
Praktische Befehle
# Alle Container starten
docker-compose up -d
# Status prüfen
docker-compose ps
# Service neu erstellen und starten
docker-compose up -d --force-recreate web
# Logs überwachen
docker-compose logs -f
# Alles herunterfahren und aufräumen
docker-compose down -v --remove-orphans
# Neu bauen und starten
docker-compose build --no-cache
docker-compose up -d