WordPress mit Docker Compose und MySQL verbinden

Logos von Docker Compose, MySQL und WordPress auf einem mintgrünen Hintergrund. Oben links das Docker-Logo mit der Aufschrift „Docker Compose“, daneben das MySQL-Delfin-Logo und unten zentral das WordPress-W-Logo mit Schriftzug.

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_db gespeichert – auch nach Neustarts erhalten.
  • WordPress-Dateien: liegen lokal in plugins, themes und uploads.

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.

3 Comments

  1. Martin Baumgartner

    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

  2. Martin Baumgartner

    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 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert