API updadte
This commit is contained in:
337
docs/docker.md
Normal file
337
docs/docker.md
Normal file
@@ -0,0 +1,337 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user