338 lines
5.4 KiB
Markdown
338 lines
5.4 KiB
Markdown
# Docker
|
|
|
|
[← Zurück zur Hauptseite](../README.md)
|
|
|
|
## Container-Übersicht
|
|
|
|
Das Projekt verwendet 3 Docker-Container:
|
|
|
|
| Container | Image | Port | Beschreibung |
|
|
|-----------|-------|------|--------------|
|
|
| `immorechner_web` | Custom (PHP 8.4 + Apache) | 8080 | Web-Server & PHP |
|
|
| `immorechner_db` | mariadb:latest | 3306 | Datenbank |
|
|
| `immorechner_phpmyadmin` | phpmyadmin:latest | 8081 | DB-Verwaltung |
|
|
|
|
## Container-Management
|
|
|
|
### Starten
|
|
|
|
```bash
|
|
# Alle Container starten
|
|
docker-compose up -d
|
|
|
|
# Mit Build (nach Dockerfile-Änderungen)
|
|
docker-compose up -d --build
|
|
|
|
# Im Vordergrund (mit Logs)
|
|
docker-compose up
|
|
```
|
|
|
|
### Stoppen
|
|
|
|
```bash
|
|
# Container stoppen
|
|
docker-compose stop
|
|
|
|
# Container stoppen und entfernen
|
|
docker-compose down
|
|
|
|
# Container stoppen, entfernen + Volumes löschen
|
|
docker-compose down -v
|
|
```
|
|
|
|
### Neustarten
|
|
|
|
```bash
|
|
# Alle Container
|
|
docker-compose restart
|
|
|
|
# Einzelner Container
|
|
docker-compose restart web
|
|
docker-compose restart db
|
|
```
|
|
|
|
### Status prüfen
|
|
|
|
```bash
|
|
# Container-Status
|
|
docker-compose ps
|
|
|
|
# Alle Container (auch gestoppte)
|
|
docker ps -a
|
|
|
|
# Resource-Usage
|
|
docker stats
|
|
```
|
|
|
|
## Logs
|
|
|
|
### Container-Logs anzeigen
|
|
|
|
```bash
|
|
# Alle Container (Live)
|
|
docker-compose logs -f
|
|
|
|
# Nur Web-Container
|
|
docker-compose logs -f web
|
|
|
|
# Nur Datenbank
|
|
docker-compose logs -f db
|
|
|
|
# Nur phpMyAdmin
|
|
docker-compose logs -f phpmyadmin
|
|
|
|
# Letzte 100 Zeilen
|
|
docker-compose logs --tail=100 web
|
|
```
|
|
|
|
### Apache-Logs
|
|
|
|
```bash
|
|
# Access Log
|
|
docker-compose exec web tail -f /var/log/apache2/access.log
|
|
|
|
# Error Log
|
|
docker-compose exec web tail -f /var/log/apache2/error.log
|
|
```
|
|
|
|
### Symfony-Logs
|
|
|
|
```bash
|
|
# Dev Log
|
|
docker-compose exec web tail -f /var/www/html/var/log/dev.log
|
|
|
|
# Prod Log
|
|
docker-compose exec web tail -f /var/www/html/var/log/prod.log
|
|
```
|
|
|
|
## Container-Zugriff
|
|
|
|
### In Container einloggen
|
|
|
|
```bash
|
|
# Web-Container (Bash)
|
|
docker-compose exec web bash
|
|
|
|
# Datenbank-Container
|
|
docker-compose exec db bash
|
|
|
|
# phpMyAdmin-Container
|
|
docker-compose exec phpmyadmin bash
|
|
```
|
|
|
|
### Als Root einloggen
|
|
|
|
```bash
|
|
docker-compose exec -u root web bash
|
|
```
|
|
|
|
## Befehle im Container ausführen
|
|
|
|
### PHP/Symfony
|
|
|
|
```bash
|
|
# Symfony Console
|
|
docker-compose exec web php bin/console
|
|
|
|
# PHP-Version prüfen
|
|
docker-compose exec web php -v
|
|
|
|
# PHP-Module anzeigen
|
|
docker-compose exec web php -m
|
|
|
|
# PHP-Konfiguration
|
|
docker-compose exec web php -i
|
|
```
|
|
|
|
### Composer
|
|
|
|
```bash
|
|
# Install
|
|
docker-compose exec web composer install
|
|
|
|
# Update
|
|
docker-compose exec web composer update
|
|
|
|
# Paket hinzufügen
|
|
docker-compose exec web composer require vendor/package
|
|
|
|
# Paket entfernen
|
|
docker-compose exec web composer remove vendor/package
|
|
|
|
# Autoloader neu generieren
|
|
docker-compose exec web composer dump-autoload
|
|
```
|
|
|
|
### Datenbank
|
|
|
|
```bash
|
|
# MariaDB-Client öffnen
|
|
docker-compose exec db mariadb -u root -proot immorechner
|
|
|
|
# SQL-Datei importieren
|
|
docker-compose exec -T db mariadb -u root -proot immorechner < backup.sql
|
|
|
|
# Datenbank exportieren
|
|
docker-compose exec db mariadb-dump -u root -proot immorechner > backup.sql
|
|
|
|
# Tabellen anzeigen
|
|
docker-compose exec db mariadb -u root -proot -e "SHOW TABLES" immorechner
|
|
```
|
|
|
|
## Volumes
|
|
|
|
### Volumes anzeigen
|
|
|
|
```bash
|
|
docker volume ls
|
|
```
|
|
|
|
### Volume-Details
|
|
|
|
```bash
|
|
docker volume inspect immorechner_db_data
|
|
```
|
|
|
|
### Volume löschen
|
|
|
|
```bash
|
|
# ACHTUNG: Löscht alle Daten!
|
|
docker volume rm immorechner_db_data
|
|
```
|
|
|
|
### Backup erstellen
|
|
|
|
```bash
|
|
# Datenbank-Backup
|
|
docker-compose exec db mariadb-dump -u root -proot immorechner > backup_$(date +%Y%m%d).sql
|
|
|
|
# Volume-Backup
|
|
docker run --rm -v immorechner_db_data:/data -v $(pwd):/backup alpine tar czf /backup/db_backup.tar.gz /data
|
|
```
|
|
|
|
## Images
|
|
|
|
### Images anzeigen
|
|
|
|
```bash
|
|
docker images
|
|
```
|
|
|
|
### Image neu bauen
|
|
|
|
```bash
|
|
docker-compose build web
|
|
```
|
|
|
|
### Image mit Tag
|
|
|
|
```bash
|
|
docker build -t immorechner:latest .
|
|
```
|
|
|
|
### Image löschen
|
|
|
|
```bash
|
|
docker rmi immorechner-web
|
|
```
|
|
|
|
## Netzwerk
|
|
|
|
### Netzwerke anzeigen
|
|
|
|
```bash
|
|
docker network ls
|
|
```
|
|
|
|
### Netzwerk-Details
|
|
|
|
```bash
|
|
docker network inspect immorechner_immorechner_network
|
|
```
|
|
|
|
### Container im Netzwerk
|
|
|
|
```bash
|
|
docker network inspect immorechner_immorechner_network | grep Name
|
|
```
|
|
|
|
## Cleanup
|
|
|
|
### Gestoppte Container entfernen
|
|
|
|
```bash
|
|
docker container prune
|
|
```
|
|
|
|
### Ungenutzte Images entfernen
|
|
|
|
```bash
|
|
docker image prune
|
|
```
|
|
|
|
### Ungenutzte Volumes entfernen
|
|
|
|
```bash
|
|
docker volume prune
|
|
```
|
|
|
|
### Alles aufräumen
|
|
|
|
```bash
|
|
# ACHTUNG: Löscht alles Ungenutzte!
|
|
docker system prune -a --volumes
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Container startet nicht
|
|
|
|
```bash
|
|
# Logs prüfen
|
|
docker-compose logs web
|
|
|
|
# Container im Debug-Modus starten
|
|
docker-compose up web
|
|
```
|
|
|
|
### Port bereits belegt
|
|
|
|
```bash
|
|
# Ports prüfen
|
|
netstat -ano | findstr :8080 # Windows
|
|
lsof -i :8080 # Mac/Linux
|
|
|
|
# In docker-compose.yml ändern:
|
|
ports:
|
|
- "8090:80" # Statt 8080:80
|
|
```
|
|
|
|
### Berechtigungsprobleme
|
|
|
|
```bash
|
|
# Berechtigungen setzen
|
|
docker-compose exec -u root web chown -R www-data:www-data /var/www/html
|
|
|
|
# Schreibrechte für var/
|
|
docker-compose exec -u root web chmod -R 777 /var/www/html/var
|
|
```
|
|
|
|
### Container-Reset
|
|
|
|
```bash
|
|
# Komplett neu starten
|
|
docker-compose down -v
|
|
docker-compose up -d --build
|
|
docker-compose exec web composer install
|
|
docker-compose exec web php bin/console doctrine:migrations:migrate --no-interaction
|
|
```
|
|
|
|
---
|
|
|
|
**Siehe auch:**
|
|
- [Installation](installation.md) - Setup-Anleitung
|
|
- [Development](development.md) - Entwickler-Workflow
|
|
- [Troubleshooting](troubleshooting.md) - Fehler beheben
|
|
|
|
[← Zurück zur Hauptseite](../README.md)
|