← Zurück zu allen Tutorials

WordPress mit Docker Compose

WordPress produktionsreif auf deinem eigenen Server betreiben – mit Docker Compose, MariaDB und optionalem Nginx Reverse Proxy.

Voraussetzungen

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