5.4 KiB
5.4 KiB
Docker
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
# 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
# Container stoppen
docker-compose stop
# Container stoppen und entfernen
docker-compose down
# Container stoppen, entfernen + Volumes löschen
docker-compose down -v
Neustarten
# Alle Container
docker-compose restart
# Einzelner Container
docker-compose restart web
docker-compose restart db
Status prüfen
# Container-Status
docker-compose ps
# Alle Container (auch gestoppte)
docker ps -a
# Resource-Usage
docker stats
Logs
Container-Logs anzeigen
# 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
# 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
# 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
# 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
docker-compose exec -u root web bash
Befehle im Container ausführen
PHP/Symfony
# 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
# 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
# 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
docker volume ls
Volume-Details
docker volume inspect immorechner_db_data
Volume löschen
# ACHTUNG: Löscht alle Daten!
docker volume rm immorechner_db_data
Backup erstellen
# 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
docker images
Image neu bauen
docker-compose build web
Image mit Tag
docker build -t immorechner:latest .
Image löschen
docker rmi immorechner-web
Netzwerk
Netzwerke anzeigen
docker network ls
Netzwerk-Details
docker network inspect immorechner_immorechner_network
Container im Netzwerk
docker network inspect immorechner_immorechner_network | grep Name
Cleanup
Gestoppte Container entfernen
docker container prune
Ungenutzte Images entfernen
docker image prune
Ungenutzte Volumes entfernen
docker volume prune
Alles aufräumen
# ACHTUNG: Löscht alles Ungenutzte!
docker system prune -a --volumes
Troubleshooting
Container startet nicht
# Logs prüfen
docker-compose logs web
# Container im Debug-Modus starten
docker-compose up web
Port bereits belegt
# 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
# 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
# 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 - Setup-Anleitung
- Development - Entwickler-Workflow
- Troubleshooting - Fehler beheben