WordPress ist eines der beliebtesten Content-Management-Systeme weltweit. Mit Docker Compose lässt sich WordPress schnell, sauber und updatefähig in einer containerisierten Umgebung betreiben. Durch die Trennung von Webserver, Datenbank und persistenter Speicherung können Updates einfach durchgeführt und Backups effizient erstellt werden. Dieses Tutorial zeigt, wie ein stabiler WordPress-Stack mit Docker Compose aufgebaut wird.
Grundkomponenten eines WordPress-Stacks
Ein WordPress-Stack besteht typischerweise aus folgenden Komponenten:
- WordPress-Container: Enthält den PHP-Code und die Applikationslogik
- Datenbank: MySQL oder MariaDB für persistente Speicherung
- Nginx (optional): Webserver oder Reverse Proxy für bessere Performance und SSL
- Volumes: Persistente Speicherung von Datenbank, Uploads und Konfigurationen
Volumes für Persistenz
Persistente Daten gewährleisten, dass Inhalte und Konfigurationen bei Container-Neustarts nicht verloren gehen.
volumes:
wordpress_data:
db_data:
wordpress_dataspeichert Uploads, Themes und Pluginsdb_dataenthält die Datenbankdaten- Volumes sind unabhängig von den Containern und ermöglichen einfache Backups
Netzwerke für die interne Kommunikation
Separate Netzwerke sorgen für eine sichere interne Kommunikation zwischen WordPress und der Datenbank.
networks:
wp_frontend:
wp_backend:
wp_frontendverbindet WordPress mit optionalem Nginxwp_backendverbindet WordPress mit der Datenbank- Trennung minimiert Sicherheitsrisiken
Beispiel: docker-compose.yml für WordPress
version: '3.8'
services:
wordpress:
image: wordpress:6.3-php8.2-fpm
depends_on:
- db
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD_FILE: /run/secrets/db_root_password
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
networks:
- wp_frontend
- wp_backend
secrets:
- db_root_password
db:
image: mariadb:11
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
MYSQL_DATABASE: wordpress
volumes:
- db_data:/var/lib/mysql
networks:
- wp_backend
secrets:
- db_root_password
secrets:
db_root_password:
file: ./db_root_password.txt
volumes:
wordpress_data:
db_data:
networks:
wp_frontend:
wp_backend:
Erklärungen zur Compose-Datei
- WordPress: Container nutzt PHP-FPM, verbindet sich über internes Netzwerk mit der Datenbank, Port 8080 auf Host gemappt
- Datenbank: MariaDB Container, Root-Passwort über Secret, persistente Speicherung im Volume
db_data - Secrets: Sensible Daten wie DB-Passwort nicht in .env-Dateien speichern
- Volumes: Persistente Speicherung für WordPress-Dateien und Datenbank
- Netzwerke: Frontend- und Backend-Trennung für Sicherheit und Übersichtlichkeit
Start und Verwaltung des WordPress-Stacks
Der gesamte Stack kann mit einem einzigen Befehl gestartet werden:
docker-compose up -d
Zum Stoppen und Entfernen aller Container, Netzwerke und Volumes:
docker-compose down -v
Best Practices
- Persistente Volumes für Datenbank und WordPress-Dateien nutzen
- Secrets für Passwörter und sensible Konfigurationswerte einsetzen
- Separate Netzwerke für Frontend und Backend definieren
- Automatisierte Backups der Volumes einrichten
- CI/CD-Pipelines für Builds und Updates einplanen
- Nginx optional als Reverse Proxy mit SSL einsetzen
- Versionierte Docker Images für einfache Rollbacks verwenden
- Regelmäßige Sicherheitsupdates der Images durchführen
Praxisbeispiele
WordPress starten
docker-compose up -d
Logs überwachen
docker-compose logs -f wordpress
docker-compose logs -f db
Rollback auf vorherige WordPress-Version
docker service update --image wordpress:6.2-fpm wordpress_service
Updatefähigkeit
Durch die Nutzung versionierter Docker Images kann WordPress unkompliziert aktualisiert werden. Daten und Konfigurationen bleiben durch die persistente Speicherung erhalten, während neue Images getestet und ausgerollt werden können.
docker-compose pull
docker-compose up -d
Zusammenfassung
Mit Docker Compose lässt sich WordPress schnell, sauber und updatefähig betreiben. Persistente Volumes, Secrets für sensible Daten und getrennte Netzwerke sorgen für Sicherheit und Wartbarkeit. Best Practices wie CI/CD-Integration, Versionierung der Images und regelmäßige Updates gewährleisten einen stabilen und sicheren Betrieb von WordPress-Websites in containerisierten Umgebungen.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











