Mit Docker Compose lässt sich in wenigen Minuten eine komplette WordPress-Umgebung mit MySQL aufsetzen – ideal für lokale Entwicklung oder Tests. In dieser Anleitung wird Schritt für Schritt erklärt, wie du das unter Linux Mint oder Ubuntu einrichtest.
Voraussetzungen
- Ein System mit Linux Mint oder Ubuntu
- Grundkenntnisse im Umgang mit der Kommandozeile
- Docker und Docker Compose sind installiert
Wenn Docker und Docker Compose noch nicht installiert sind, folge bitte der Anleitung auf:
Docker unter Linux Mint und Ubuntu installieren (gugeli.de)
Projektverzeichnis anlegen
mkdir -p ~/wordpress-docker
cd ~/wordpress-docker
Docker-Compose-Datei erstellen
Öffne im Projektverzeichnis den Editor Nano:
nano docker-compose.yml
Füge dann folgenden Inhalt ein:
version: '3.6'
services:
db:
image: mysql:5.7
container_name: wordpress_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: mypassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
volumes:
- data_db:/var/lib/mysql
ports:
- "3306:3306"
wordpress:
image: wordpress:latest
container_name: wordpress_app
depends_on:
- db
restart: unless-stopped
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- ./plugins:/var/www/html/wp-content/plugins
- ./themes:/var/www/html/wp-content/themes
- ./uploads:/var/www/html/wp-content/uploads
volumes:
data_db:
Speichern und beenden: Mit Strg + O speichern, Enter bestätigen und mit Strg + X schließen.
Verzeichnisse anlegen
Damit WordPress auf lokale Dateien zugreifen kann, müssen drei Ordner existieren:
mkdir -p plugins themes uploads
Diese werden automatisch mit dem Container verbunden – ideal für lokale Entwicklung.
Portfreigabe prüfen
In dieser Konfiguration nutzt WordPress den Port 8080. Prüfe, ob er frei ist:
sudo lsof -i:8080
Wenn keine Ausgabe erscheint, ist der Port frei. Falls er belegt ist, ändere in der docker-compose.yml zum Beispiel auf "8888:80".
Container starten
Starte deine Umgebung im Hintergrund:
docker-compose up -d
Die Container werden nun heruntergeladen und gestartet.
Status prüfen
docker ps
Du solltest etwa Folgendes sehen:
CONTAINER ID IMAGE STATUS PORTS
abcd1234 wordpress:latest Up ... 0.0.0.0:8080->80/tcp
efgh5678 mysql:5.7 Up ... 3306/tcp
WordPress im Browser öffnen
Öffne im Browser:
http://localhost:8080
Beim ersten Aufruf startet der WordPress-Installationsassistent. Folge den Schritten, um Benutzername, Passwort und Seitentitel festzulegen.
Daten dauerhaft speichern
- MySQL-Daten: werden im Volume
data_dbgespeichert – auch nach Neustarts erhalten. - WordPress-Dateien: liegen lokal in
plugins,themesunduploads.
Nützliche Befehle
# Logs ansehen
docker-compose logs -f wordpress
# Container neu starten
docker-compose restart
# Container stoppen (Daten bleiben erhalten)
docker-compose down
# Container + Volumes löschen (ACHTUNG: löscht Datenbank!)
docker-compose down -v
Sicherheit und Tipps
- Verwende für produktive Umgebungen keine Standardpasswörter.
- Lege sensible Daten in einer
.env-Datei ab. - Erstelle regelmäßig Backups deines Volumes:
docker run --rm --volumes-from wordpress_db -v $(pwd):/backup ubuntu tar cvf /backup/db_backup.tar /var/lib/mysql
Mit Docker Compose hast du unter Linux Mint oder Ubuntu in wenigen Minuten eine vollständige WordPress-Installation mit MySQL. Alle Daten bleiben auch nach Neustarts erhalten – perfekt für lokale Entwicklung und Testumgebungen.
Hinweis: Passen Sie Passwörter, Ports und Pfade immer an Ihre Umgebung an. Alle Angaben ohne Gewähr.


Hallo Tobias
Ich experimentiere momentan mit WordPress in einer Docker-Umgebung. Dabei bin ich auf diesen Blog gestoßen. Dein docker-compose.yml File ist sehr übersichtlich und ich habe das Ganze auf meinem Raspberry Pi 5 rel. schnell zum Laufen gebracht. Ich hätte allerdings ein, zwei Bemerkungen für kleine Anpassungen in deiner Anleitung, welche anderen Benutzern ev. das Leben erleichtern könnten. Falls du interessiert bist (und Zeit hast 🙂 melde dich doch einfach per E-Mail bei mir.
Besten Dank und freundlichen Gruß aus der Schweiz, Martin
Einfach nur kurz meine (vorläufigen) Bemerkungen
– Mit mysql 5.7 hat’s bei mir nicht funktioniert. Musste auf 8.0 oder 8.4 gehen
– Die Verzeichnisse plugins, themes und uploads werden automatisch erstellt
– Besitzer und Gruppe des Verzeichnisses Plugins musste ich anpassen, damit innerhalb WordPress Plugins geladen werden können
Hallo Martin,
vielen herzlichen Dank für Deine Ergänzungen.
Liebe Grüße,
Tobias Schindegger 🙂