Docker Wordpress · 7 min read · Oct 14, 2025
Dockerisierung von Wordpress mit Nginx und PHP-FPM auf Ubuntu 16.04
Docker-Compose ist ein Befehlszeilenwerkzeug zum Definieren und Verwalten von Multi-Container-Docker-Containern, als wären sie ein einzelner Dienst. Compose ist in Python geschrieben und kann mit dem Python-Pip-Befehl installiert werden. Mit Compose können wir mehrere Docker-Container mit nur einem einzigen Befehl ausführen. Es ermöglicht Ihnen, einen Container als Dienst zu erstellen, was großartig für Ihre Entwicklungs-, Test- und Staging-Umgebung ist.
In diesem Tutorial werde ich Sie Schritt für Schritt anleiten, wie Sie Docker-Compose verwenden. Wir werden ‘Wordpress‘ mit Nginx, MySQL und PHP-FPM bereitstellen. Jeder Dienst hat seinen eigenen Container, und wir werden Bilder aus dem Docker Hub-Registry verwenden. Ich werde Ihnen zeigen, wie Sie Container aus Docker-Images erstellen und alle Container mit Docker-Compose verwalten.
Voraussetzungen
- Ubuntu 16.04
- Root-Rechte
Schritt 1 - Docker installieren
Wir beginnen von Grund auf, indem wir Docker und Docker Compose manuell mit dem Apt-Befehl installieren.
Bevor wir beginnen, aktualisieren Sie das Ubuntu-Repository und installieren Sie die neuesten Updates:
sudo apt-get update
sudo apt-get upgradeStandardmäßig ist Docker im Ubuntu-Repository verfügbar, sodass wir es sofort installieren können:
sudo apt-get install -y docker.ioWenn die Installation abgeschlossen ist, starten Sie Docker und fügen Sie es hinzu, damit es beim Booten automatisch gestartet wird:
systemctl start docker
systemctl enable dockerTesten Sie nun Ihre Docker-Installation mit dem folgenden Befehl:
docker run hello-worldSie werden hello-world von Docker sehen.
Schritt 2 - Docker-Compose installieren
Docker-Compose ist ein Skript, das in Python geschrieben ist, es ist im PyPI-Python-Repository verfügbar und kann mit Python-Pip installiert werden. Daher müssen wir zuerst Python und Python-Pip auf unserem System installieren.
Installieren Sie Python und Python-Pip:
sudo apt-get install -y python python-pipInstallieren Sie als Nächstes Docker-Compose mit dem Pip-Befehl:
pip install docker-composeWarten Sie, bis der Installationsprozess abgeschlossen ist. Überprüfen Sie dann die Installation mit dem Docker-Compose-Befehl:
docker-compose -vSie erhalten die Docker-Compose-Version.
Schritt 3 - Wordpress einrichten
Jetzt sind Docker und Docker-Compose auf dem System installiert. In diesem Schritt zeige ich Ihnen, wie Sie die Docker-Compose-Umgebung für unser WordPress-Projekt erstellen und einrichten.
Wir werden die PHP-Anwendung ‘Wordpress’ mit Nginx als Webserver und MariaDB für die MySQL-Datenbank als Docker-Container bereitstellen, die von Docker-Compose verwaltet werden. Jede Anwendung (Wordpress, Nginx und MySQL) wird in ihrem eigenen Container ausgeführt, Sie können die Liste unten sehen:
Nginx: Wir verwenden das offizielle Docker-Image, die neueste Version ‘nginx:latest’.
Wordpress: Wordpress stellt einige Docker-Images auf Docker-Hub zur Verfügung, und wir werden WordPress 4.7 mit PHP-FPM 7.0 darauf verwenden.
MySQL: Wir werden den offiziellen MariaDB-Container, die neueste Version, verwenden.
Wir benötigen also 3 Docker-Images aus dem Docker Hub-Registry.
Wir werden Docker nicht als Root ausführen, wir werden einen normalen Linux-Benutzer verwenden. Erstellen Sie einfach einen neuen Benutzer mit dem folgenden Befehl (fühlen Sie sich frei, hier einen anderen Benutzernamen zu verwenden, stellen Sie nur sicher, dass der Benutzer noch nicht existiert. Wenn Sie einen anderen Namen wählen, stellen Sie sicher, dass Sie ihn in allen folgenden Befehlen in diesem Tutorial ändern):
useradd -m -s /bin/bash hakase
passwd hakaseFügen Sie nun den Benutzer zur ‘docker‘-Gruppe hinzu, damit der Benutzer den Docker-Befehl verwenden kann, und starten Sie den Docker-Dienst neu:
usermod -a -G docker hakase
systemctl restart dockerMelden Sie sich beim Benutzer ‘hakase’ an und erstellen Sie ein neues Verzeichnis für das WordPress-Projekt:
su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/Erstellen Sie als Nächstes eine neue Datei mit dem Namen ‘docker-compose.yml‘ und erstellen Sie ein neues Verzeichnis für das Projekt. Geben Sie einfach die folgenden Befehle ein:
touch docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/Datei- und Verzeichnisliste des Projekts:
docker-compose.yml: Dies ist die Docker-Compose-Konfigurationsdatei, die Sie erstellen müssen, wenn Sie ein neues Docker-Compose-Projekt starten.
nginx/: Dieses Verzeichnis wird für unsere zusätzlichen Nginx-Konfigurationen wie den virtuellen Host usw. verwendet.
db-data/: Das Volume/Verzeichnis für die MySQL-Daten. Die SQL-Daten von ‘/var/lib/mysql’ werden im db-data-Verzeichnis gemountet.
logs/: Verzeichnis für Anwendungsprotokolle, Nginx, MariaDB und PHP-FPM.
wordpress/: Alle WordPress-Dateien sind in diesem Verzeichnis verfügbar.
Im Verzeichnis ‘nginx’ erstellen Sie eine neue Konfigurationsdatei für unseren WordPress-Virtual-Host.
Erstellen Sie eine neue Datei wordpress.conf:
vim nginx/wordpress.confFügen Sie die folgende Konfiguration ein:
server {
listen 80;
server_name wp-hakase.co;
root /var/www/html;
index index.php;
access_log /var/log/nginx/hakase-access.log;
error_log /var/log/nginx/hakase-error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}Speichern Sie die Datei und beenden Sie vim.
Schritt 4 - Docker-Compose konfigurieren
In diesem Schritt werden wir die docker-compose.yml-Datei bearbeiten. Wenn Sie das Docker-Compose-Projekt starten möchten, stellen Sie sicher, dass Sie zuerst die docker-compose.yml-Datei erstellen, wie wir es unten tun.
Bearbeiten Sie docker-compose.yml mit vim:
vim docker-compose.ymlDefinieren Sie Ihre Dienste, in der ersten Zeile definieren wir Nginx. Wir verwenden das offizielle Docker-Image von Nginx, die neueste Version, und konfigurieren die Portzuordnung für Port 80 im Container auf Port 80 auf dem Host. Konfigurieren Sie als Nächstes die Docker-Volumes, das Volume für unsere Nginx-Virtual-Host-Konfiguration, das Volume für Nginx-Protokolldateien und das Webstammverzeichnis-Volume ‘/var/www/html’. Der Nginx-Container ist mit dem WordPress-Container verknüpft.
Fügen Sie die folgende Konfiguration ein:
nginx:
image: nginx:latest
ports:
- '80:80'
volumes:
- ./nginx:/etc/nginx/conf.d
- ./logs/nginx:/var/log/nginx
- ./wordpress:/var/www/html
links:
- wordpress
restart: alwaysDefinieren Sie als Nächstes den MySQL-Server. Wir verwenden das MariaDB-Image, die neueste Version. Konfigurieren Sie die Portzuordnung für den Container auf Port 3306 und konfigurieren Sie das MySQL-Root-Passwort mit der Umgebungsvariable ‘MYSQL_ROOT_PASSWORD’. Schließlich konfigurieren Sie das Container-Volume für das MySQL-Datenverzeichnis.
Fügen Sie die folgende Konfiguration ein:
mysql:
image: mariadb
ports:
- '3306:3306'
volumes:
- ./db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=aqwe123
restart: alwaysDann konfigurieren wir den WordPress-Dienst, indem wir das WordPress 4.7-Docker-Image mit PHP-FPM 7.0 verwenden. Konfigurieren Sie den Port für PHP-FPM auf Port 9000, aktivieren Sie das Docker-Volume für das Webverzeichnis ‘/var/www/html’ auf das Hostverzeichnis ‘wordpress’, richten Sie die Datenbank ein, indem Sie die WordPress-Umgebungsvariable definieren, und verknüpfen Sie den WordPress-Dienst mit MySQL.
Fügen Sie die folgende Konfiguration ein:
wordpress:
image: wordpress:4.7.1-php7.0-fpm
ports:
- '9000:9000'
volumes:
- ./wordpress:/var/www/html
environment:
- WORDPRESS_DB_NAME=wpdb
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_PASSWORD=aqwe123
links:
- mysql
restart: alwaysNachdem Sie die drei Teile in die docker-compose.yml-Datei eingefügt haben, speichern Sie die Datei und beenden Sie den Vim-Editor.
Unsere Docker-Compose-Konfiguration ist bereit.
Schritt 5 - Docker-Compose ausführen
Beginnen Sie mit der Erstellung der neuen Container mit Docker Compose. Gehen Sie zum wordpress-compose-Verzeichnis und starten Sie die neuen Container basierend auf unserer Compose-Datei.
cd ~/wordpress-compose/
docker-compose up -dSie können die Ergebnisse des Befehls sehen. Drei Container wurden erstellt. Überprüfen Sie den Containerstatus mit der ps-Option:
docker-compose psUnten ist das Ergebnis:

Wenn Sie die Protokollausgabe des Containers sehen möchten, können Sie die folgenden Befehle verwenden:
docker-compose logs nginx
docker-compose logs mysql
docker-compose logs wordpressContainerprotokolle:

Hinweis:
Wenn Sie im WordPress-Containerprotokoll einen Fehler über die MySQL-Verbindung abgelehnt sehen, ignorieren Sie ihn.
Schritt 6 - Wordpress installieren
Bevor wir diesen Schritt ausführen, überprüfen wir die verfügbaren Ports/offenen Ports auf dem System. Stellen Sie sicher, dass Sie 3 Ports geöffnet haben, Port 80, 3306 und Port 9000.
netstat -plntuDie Ergebnisse sind unten:

Öffnen Sie jetzt Ihren Webbrowser und geben Sie die Server-URL oder IP-Adresse ein.
Sie können die WordPress-Installationsseite sehen. Wählen Sie Ihre Sprache und klicken Sie auf ‘Weiter‘.

Füllen Sie die Details Ihrer Website wie Titel, Admin-Benutzer und Passwort, Ihre E-Mail-Adresse aus und klicken Sie dann auf ‘Wordpress installieren‘.

Sie werden zum ‘Wordpress Admin Dashboard‘ weitergeleitet.

Und dies ist mein WordPress-Beispielbeitrag Hallo Welt.

Wordpress wurde mit Docker-Compose installiert.
Schritt 7 - Zugriff auf den Docker-Container
Dies ist ein zusätzlicher Schritt, wie Sie auf einen Container mit Docker-Compose zugreifen können. Überprüfen Sie, ob alle Container verfügbar sind und zeigen Sie ihren Status an:
docker-compose psWir haben bereits 3 Container, jetzt können wir versuchen, uns in jeden Container einzuloggen. Melden Sie sich beim ersten Nginx-Container mit dem Docker-Compose-Befehl an.
docker-compose exec nginx bashnginx: Dienstname in der Docker-Compose-Datei docker-compose.yml
bash: Führen Sie den Bash-Shell-Befehl aus
Überprüfen Sie nun unsere WordPress-Virtual-Host-Konfiguration.
cat /etc/nginx/conf.d/wordpress.conf
Die Dateien sind im Container verfügbar.
Versuchen Sie als Nächstes, sich in den MySQL-Container einzuloggen, und melden Sie sich dann mit unserem Passwort in der Compose-Datei in die MySQL-Shell ein.
docker-compose exec mysql bash
mysql -u root -p
GEBEN SIE DAS MYSQL ROOT PASSWORT EINSehen Sie sich die Liste der Datenbanken an:
show databases;Sie werden unsere WordPress-Datenbank sehen.

Im ‘wordpress’-Container sehen Sie alle WordPress-Dateien.
docker-compose exec wordpress bash
ls -lahAlle Container sind zugänglich.
Referenz
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.