Zum Hauptinhalt springen

WordPress Multi-Container Setup

Ein Docker Compose Projekt das WordPress und eine MySQL-Datenbank als zwei isolierte Container im selben Netzwerk betreibt. Das Projekt diente als praktische Übung in Container-Orchestrierung und dem Zusammenspiel mehrerer Services über Docker Compose.

Tech Stack

Docker Docker Compose WordPress MySQL 8.0 Apache

Projektstruktur

Wordpress-Multi-Container-Setup/
├── ⚙️ docker-compose.yml # Orchestrierung beider Services
├── ⚙️ .env # Umgebungsvariablen (nicht im Repo)
├── ⚙️ .env.template # Vorlage für .env
└── 📄 .gitignore

Quickstart

# Repository klonen
git clone git@github.com:EnsslinAdrian/Wordpress-Multi-Container-Setup.git
cd Wordpress-Multi-Container-Setup

# .env Datei erstellen und befüllen
cp .env.template .env

# Container starten
docker compose up -d

WordPress erreichbar unter: <YOUR_IP>:8000

Architektur

Beide Services laufen im selben Docker-Netzwerk wp-net und können sich gegenseitig über ihren Service-Namen erreichen.

WordPress Service

wordpress:
image: wordpress:6-php8.4-apache
restart: on-failure:5
depends_on:
- db
ports:
- "8000:80"
networks:
- wp-net
environment:
WORDPRESS_DB_HOST: ${WORDPRESS_DB_HOST}
WORDPRESS_DB_USER: ${WORDPRESS_DB_USER}
WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
WORDPRESS_DB_NAME: ${WORDPRESS_DB_NAME}
volumes:
- wordpress_data:/var/www/html
KonfigurationBeschreibung
depends_onDatenbank startet vor WordPress
restartAutomatischer Neustart bei Fehler, max. 5×
portsHost-Port 8000 → Container-Port 80
volumesWordPress-Daten persistent unter /var/www/html

MySQL Service

db:
image: mysql:8.0
restart: on-failure:5
networks:
- wp-net
environment:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_RANDOM_ROOT_PASSWORD: ${MYSQL_RANDOM_ROOT_PASSWORD}
volumes:
- db_data:/var/lib/mysql
KonfigurationBeschreibung
restartAutomatischer Neustart bei Fehler, max. 5×
volumesDatenbankdaten persistent unter /var/lib/mysql
MYSQL_RANDOM_ROOT_PASSWORDRoot-Passwort wird zufällig generiert

Nützliche Docker-Befehle

docker compose up -d          # Starten
docker compose down # Stoppen
docker compose down -v # Stoppen + Volumes löschen
docker compose restart # Neu starten

docker ps # Laufende Container anzeigen
docker logs -f <container> # Logs live verfolgen

Was ich dabei gelernt habe

  • Multi-Container Orchestrierung — Mehrere Services gemeinsam starten, stoppen und verwalten
  • Docker Networking — Services über ein gemeinsames Netzwerk verbinden
  • Volumes — Datenpersistenz außerhalb des Containers sicherstellen
  • Environment Variables — Sensible Zugangsdaten sauber über .env auslagern
  • depends_on — Startreihenfolge von Services kontrollieren