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.

Comments

No comments yet. Why don’t you start the discussion?

Schreibe einen Kommentar

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