WordPress mit Docker Compose
WordPress produktionsreif auf deinem eigenen Server betreiben – mit Docker Compose, MariaDB und optionalem Nginx Reverse Proxy.
Voraussetzungen
- Ubuntu 22.04 oder 24.04 Server mit Root-Zugang
- Mindestens 1 GB RAM (2 GB empfohlen)
- Docker und Docker Compose installiert
- Domain mit DNS A-Record (für SSL)
Schritt 1: Projektverzeichnis anlegen
mkdir -p ~/wordpress && cd ~/wordpress
Schritt 2: docker-compose.yml erstellen
# docker-compose.yml
services:
db:
image: mariadb:11
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: geheim_root_pw_aendern
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: geheim_wp_pw_aendern
volumes:
- db_data:/var/lib/mysql
wordpress:
image: wordpress:latest
restart: unless-stopped
depends_on:
- db
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: geheim_wp_pw_aendern
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
volumes:
db_data:
wp_data:Sicherheit: Ersetze vor dem ersten Start alle Passwort-Platzhalter:
MYSQL_ROOT_PASSWORD, MYSQL_PASSWORD und WORDPRESS_DB_PASSWORD. MYSQL_PASSWORD und WORDPRESS_DB_PASSWORD müssen identisch sein (ebenso MYSQL_USER/WORDPRESS_DB_USER und MYSQL_DATABASE/WORDPRESS_DB_NAME), sonst kann sich WordPress nicht mit der Datenbank verbinden. MariaDB übernimmt diese Werte nur beim allerersten Start – änderst du sie später, musst du das Passwort auch in der Datenbank ändern oder das Volume db_data neu anlegen (dabei wird die Datenbank gelöscht). Verwende für Produktionsumgebungen eine .env-Datei statt hartcodierter Werte.Schritt 3: Container starten
docker compose up -d # Status prüfen docker compose ps # Logs ansehen docker compose logs -f wordpress
Öffne http://DEINE-IP:8080 im Browser. Du siehst den WordPress-Installationsassistenten.
Schritt 4: Mit .env-Datei absichern
# .env MYSQL_ROOT_PASSWORD=dein_sicheres_root_passwort MYSQL_PASSWORD=dein_sicheres_wp_passwort
In der docker-compose.yml dann ${MYSQL_ROOT_PASSWORD} statt des Klartext-Root-Passworts verwenden und ${MYSQL_PASSWORD} für beide Einträge MYSQL_PASSWORD und WORDPRESS_DB_PASSWORD – so stimmen die Werte immer überein.
Schritt 5: Backup einrichten
# Datenbank-Backup docker compose exec db mysqldump -u root -p wordpress > backup.sql # WordPress-Dateien sichern docker compose cp wordpress:/var/www/html ./wp-backup
WordPress braucht einen zuverlässigen Server
Unsere KVM Server mit SSD-Speicher und garantierten Ressourcen sorgen für schnelle Ladezeiten.
Server bestellen