Files
immorechner/docs/docker.md
2025-11-09 11:27:21 +01:00

5.4 KiB

Docker

← Zurück zur Hauptseite

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:

← Zurück zur Hauptseite