Initial Commit
This commit is contained in:
148
04 docker-compose-basics.md
Normal file
148
04 docker-compose-basics.md
Normal file
@@ -0,0 +1,148 @@
|
||||
# Vortrags-Script: Docker Compose Basics
|
||||
|
||||
## Einführung Docker Compose
|
||||
|
||||
### Zweck und Vorteile
|
||||
- **Definition**: Tool zur Verwaltung mehrerer Container als Anwendung
|
||||
- **Installation prüfen**:
|
||||
```bash
|
||||
docker-compose --version
|
||||
```
|
||||
|
||||
### YAML-Syntax
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
web:
|
||||
image: nginx
|
||||
ports:
|
||||
- "8080:80"
|
||||
db:
|
||||
image: mysql:8.0
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: secret
|
||||
```
|
||||
|
||||
### Grundbefehle
|
||||
```bash
|
||||
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
|
||||
```yaml
|
||||
services:
|
||||
web:
|
||||
depends_on:
|
||||
- db
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose up -d db
|
||||
docker-compose up -d web
|
||||
```
|
||||
|
||||
### Umgebungsvariablen
|
||||
```bash
|
||||
echo "DB_PASSWORD=secret" > .env
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Netzwerke zwischen Containern
|
||||
```bash
|
||||
docker-compose exec web ping db
|
||||
docker network ls
|
||||
docker network inspect <project_name>_default
|
||||
```
|
||||
|
||||
## Docker Compose in Entwicklung
|
||||
|
||||
### Hot-Reloading
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
docker-compose exec web bash
|
||||
docker-compose exec -T web php -v
|
||||
```
|
||||
|
||||
### Ressourcenkontrolle
|
||||
```bash
|
||||
docker stats $(docker-compose ps -q)
|
||||
```
|
||||
|
||||
## Zusammenfassung und Beispiel
|
||||
|
||||
### Komplettes Beispiel: LAMP-Stack
|
||||
```yaml
|
||||
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
|
||||
```bash
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user