# 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)