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 upgrade

Standardmäßig ist Docker im Ubuntu-Repository verfügbar, sodass wir es sofort installieren können:

sudo apt-get install -y docker.io

Wenn 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 docker

Testen Sie nun Ihre Docker-Installation mit dem folgenden Befehl:

docker run hello-world

Sie 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-pip

Installieren Sie als Nächstes Docker-Compose mit dem Pip-Befehl:

pip install docker-compose

Warten Sie, bis der Installationsprozess abgeschlossen ist. Überprüfen Sie dann die Installation mit dem Docker-Compose-Befehl:

docker-compose -v

Sie 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 hakase

Fü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 docker

Melden 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.conf

Fü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.yml

Definieren 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: always

Definieren 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: always

Dann 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: always

Nachdem 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 -d

Sie können die Ergebnisse des Befehls sehen. Drei Container wurden erstellt. Überprüfen Sie den Containerstatus mit der ps-Option:

docker-compose ps

Unten ist das Ergebnis:

Start Docker-compose Wordpress

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 wordpress

Containerprotokolle:

ein Beispiel für den docker-compose logs-Befehl

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 -plntu

Die Ergebnisse sind unten:

Port offen docker

Öffnen Sie jetzt Ihren Webbrowser und geben Sie die Server-URL oder IP-Adresse ein.

http://serverIP/

Sie können die WordPress-Installationsseite sehen. Wählen Sie Ihre Sprache und klicken Sie auf ‘Weiter‘.

Wordpress Installation Sprache einstellen

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‘.

Installieren Sie Wordpress Benutzer- und Site-Konfiguration ausfüllen

Sie werden zum ‘Wordpress Admin Dashboard‘ weitergeleitet.

Wordpress Admin Dashboard Docker-Compose

Und dies ist mein WordPress-Beispielbeitrag Hallo Welt.

Wordpress mit Docker-Compose

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 ps

Wir 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 bash

nginx: 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

Nginx Docker-Compose-Dienst

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 EIN

Sehen Sie sich die Liste der Datenbanken an:

show databases;

Sie werden unsere WordPress-Datenbank sehen.

MySQL Docker-Compose-Dienst

Im ‘wordpress’-Container sehen Sie alle WordPress-Dateien.

docker-compose exec wordpress bash  
ls -lah

Alle Container sind zugänglich.

Referenz

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.