Ich habe bereits schon hier eine Anleitung geschrieben, wie ihr WordPress normal „von Hand“ installieren könnt. Nun zeige ich euch, wie ihr dies in wenigen Minuten mit Docker realisiert. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
| Datum | Änderungen |
|---|---|
| 01.04.2020 | Anleitung erstellt. |
| 13.04.2020 | Server reagiert jetzt auch auf “www.” |
| 27.04.2020 | Traefik “secHeader” hinzugefügt. |
| 11.08.2022 | Link auf neue Traefik Anleitung, Docker Compose angepasst, verwendet nun MariaDB in neuer Version statt MySQL, Kapitel 5 hinzugefügt |
| 29.05.2023 | Anpassung an neue Traefik Anleitung |
| 09.12.2024 | Anpassung an Traefik v3, Multi Domain angepasst |
Als Grundlage meiner Anleitung dient die offizielle WordPress Anleitung für Docker.
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
1. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/wordpress/{database,app}
2. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an. Hierfür habe ich mir die offizielle WordPress Compose genommen und diese abgeändert für Traefik.
nano /opt/containers/wordpress/docker-compose.yml
Inhalt
services:
wordpress:
image: wordpress
restart: unless-stopped
container_name: wordpress
environment:
WORDPRESS_DB_HOST: wordpress-db
WORDPRESS_DB_USER: exampleuser ## Hier Benutzer eingeben ##
WORDPRESS_DB_PASSWORD: examplepass ## Hier Passwort eingeben ##
WORDPRESS_DB_NAME: wordpress
volumes:
- ./app:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.http.routers.wordpress.entrypoints=websecure"
- "traefik.http.routers.wordpress.rule=Host(`wordpress.euredomain.de`)"
- "traefik.http.routers.wordpress.middlewares=default@file"
- "traefik.http.routers.wordpress.tls=true"
- "traefik.http.routers.wordpress.tls.certresolver=http_resolver"
- "traefik.http.routers.wordpress.service=wordpress"
- "traefik.http.services.wordpress.loadbalancer.server.port=80"
- "traefik.docker.network=proxy"
networks:
- proxy
- default
wordpress-db:
image: mariadb:10.6-focal
container_name: wordpress-db
restart: unless-stopped
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: exampleuser ## Hier selben Benutzer eingeben ##
MYSQL_PASSWORD: examplepass ## Hier selbes Passwort eingeben ##
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./database:/var/lib/mysql
networks:
- default
networks:
proxy:
external: trueCode-Sprache: PHP (php)
Notwendige Anpassungen:
- MySQL Passwort ändern
- MySQL User ändern
- eure Domain bei Traefik anpassen („wordpress.euredomain.de“)
Wenn ihr WordPress auf eurer “Hauptdomain” haben wollt, so gebt ihr folgendes ein:
"traefik.http.routers.wordpress.rule=Host(`meinwordpress.de`) || Host(`www.meinwordpress.de`)"Code-Sprache: JSON / JSON mit Kommentaren (json)
3. WordPress starten
WordPress startet ihr wie gewohnt mit folgendem Befehl:
docker compose -f /opt/containers/wordpress/docker-compose.yml up -d
4. WordPress einrichten
Wenn ihr nun auf “wordpress.euredomain.de” geht, dann solltet ihr direkt zur Konfiguration kommen. Hier könnt ihr dann eure Sprache wählen sowie einen Administrator Benutzer erstellen.

5. Absichern mit CrowdSec
Nachdem ihr WordPress installiert habt, könnt ihr dies mit CrowdSec noch zusätzlich absichern. Wie ihr das innerhalb weniger Minuten macht, könnt ihr hier lesen.
6. Quellen
https://hub.docker.com/_/wordpress

Hat jemand eine WordPress Setup am laufen, der den Login mit Authelia (Zweiter Faktor etc.) absichert?