Erfahren Sie, wie Sie eine WordPress-In­stal­la­ti­on in Docker-Con­tai­nern ausführen, sowohl manuell als auch mit Docker Compose. WordPress-Ent­wick­ler und -Ent­wick­le­rin­nen werden es nützlich finden, WordPress in Docker-Con­tai­nern ein­zu­set­zen. Docker er­mög­licht es Ihnen, mit mehreren WordPress-Kon­fi­gu­ra­tio­nen zu testen und mit ein paar einfachen Befehlen eine neue WordPress-In­stal­la­ti­on zu starten.

Managed Hosting für WordPress
Erstellen Sie Ihre Website mit AI, wir über­neh­men den Rest
  • Keine Vor­kennt­nis­se nötig dank be­nut­zer­freund­li­cher AI-Tools
  • Voll­stän­dig anpassbar mit Themes und Plugins
  • Einfache Updates und minimaler Admin-Aufwand

An­for­de­run­gen

Damit WordPress in Docker-Con­tai­nern rei­bungs­los läuft, benötigen Sie eine aktuelle und un­ter­stütz­te Linux-Dis­tri­bu­ti­on. Frühere Versionen wie CentOS 7 oder Ubuntu 14.04 sind veraltet und sollten durch moderne Al­ter­na­ti­ven ersetzt werden. Empfohlen werden:

  • Ubuntu 22.04 LTS oder eine neuere Version
  • Debian 12 oder aktueller
  • Eine aktuelle Version von Red Hat En­ter­pri­se Linux (RHEL) oder AlmaLinux

Außerdem muss Docker in­stal­liert und ein­satz­be­reit sein. Die Min­dest­an­for­de­rung ist Docker 20.10 oder höher, um von neuesten Si­cher­heits- und Per­for­mance-Ver­bes­se­run­gen zu pro­fi­tie­ren. Falls Sie Docker Compose nutzen möchten, sollten Sie darauf achten, min­des­tens Version 2.x zu verwenden, da ältere Versionen nicht mehr aktiv gepflegt werden.

Grund­kennt­nis­se in der Ver­wen­dung der Kom­man­do­zei­le sowie Kennt­nis­se im Umgang mit Docker Compose und Docker sind hilfreich. Wer größere oder ska­lier­ba­re Setups plant, sollte sich auch mit Ku­ber­netes be­schäf­ti­gen, um Container-Or­ches­trie­rung auf pro­fes­sio­nel­lem Niveau zu betreiben.

Ausführen von WordPress in Docker-Con­tai­nern

Eine er­folg­rei­che WordPress-In­stal­la­ti­on besteht aus drei Elementen:

  • Der WordPress-Software
  • Einer MySQL- oder MariaDB-Datenbank
  • Den letzten In­stal­la­ti­ons­schrit­ten, die in einem Browser durch­ge­führt werden

Für die folgenden Beispiele werden die Kom­po­nen­ten WordPress und MySQL/MariaDB in separaten ver­knüpf­ten Con­tai­nern aus­ge­führt. Der Container, auf dem die WordPress-Software läuft, wird einem Port auf dem Host zu­ge­ord­net, so dass Sie in einem Browser darauf zugreifen können.

Ausführen eines MySQL/MariaDB-Con­tai­ners

Nachdem Sie Docker gestartet haben, muss in einem ersten Schritt die Datenbank ein­ge­rich­tet werden. Führen Sie hierzu zunächst einen Container namens my-db aus. Sie können entweder MySQL oder MariaDB verwenden, was ein Drop-in-Ersatz für MySQL ist.

MySQL

Starten Sie einen Container mit dem Befehl:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SICHERES_PASSWORT -d mysql:latest

MariaDB

Starten Sie einen Container mit dem Befehl:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SICHERES_PASSWORT -d mariadb:latest
Hinweis

Achten Sie darauf, dass Sie auf jeden Fall ein sicheres Passwort für Ihre Datenbank nutzen. Die Ver­wen­dung von Um­ge­bungs­va­ria­blen zur Spei­che­rung von Pass­wör­tern ist außerdem eine po­ten­zi­el­le Si­cher­heits­lü­cke. Statt­des­sen sollten vor­zugs­wei­se ein Docker Secret oder eine ge­si­cher­te Kon­fi­gu­ra­ti­ons­da­tei verwendet werden.

Datenbank erstellen

Nachdem Sie Ihren Container erstellt haben, müssen Sie eine Datenbank erstellen, die Sie für Ihre WordPress-In­stal­la­ti­on nutzen wollen.

MySQL

Verbinden Sie sich mit folgendem Befehl mit Ihrem soeben er­stell­ten Datenbank-Container:

docker exec -it my-db mysql -u root -p

Erstellen Sie eine Datenbank:

CREATE Database wordpress-db;

MariaDB

Verbinden Sie sich mit folgendem Befehl mit Ihrem soeben er­stell­ten Datenbank-Container:

docker exec -it my-db mariadb -u root -p

Erstellen Sie eine Datenbank:

CREATE Database wordpress-db;

Ausführen eines WordPress-Con­tai­ners

Als nächstes führen Sie einen Container aus dem of­fi­zi­el­len WordPress Image aus, der auf den Host-Port 8080 gemapt und mit dem Datenbank-Container verknüpft wird.

Zwei An­mer­kun­gen:

  • Wenn Sie eine Firewall haben, müssen Sie mög­li­cher­wei­se den Zugriff auf Port 8080 hin­zu­fü­gen.
  • Wenn Sie bereits einen anderen Dienst auf Port 8080 aus­ge­führt haben, können Sie einen anderen Port auf dem Host auswählen.

Der Befehl variiert leicht, je nachdem, ob Sie MySQL oder MariaDB verwenden:

MySQL

Starten Sie einen WordPress-Container mit dem Befehl:

sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latest

MariaDB

Starten Sie einen WordPress-Container mit dem Befehl:

sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latest

Es gibt viele andere Um­ge­bungs­va­ria­blen, die Sie zu diesem Befehl hin­zu­fü­gen können, wenn Sie die Stan­dard­ein­stel­lun­gen über­schrei­ben möchten, ein­schließ­lich:

  • -e WORDPRESS_DB_HOST=[hostname]: Der Standard ist die IP-Adresse und der Port des ver­knüpf­ten MySQL/MariaDB-Con­tai­ners. Mit dieser Variable können Sie auf eine MySQL/MariaDB-Datenbank auf einem anderen Server zugreifen.
  • -e WORDPRESS_DB_USER=[username]: Der Standard ist root.
  • -e WORDPRESS_DB_PASSWORD=[password]: Der Standard ist die Um­ge­bungs­va­ria­ble MYSQL_ROOT_PASSWORD des ver­knüpf­ten MySQL/MariaDB-Con­tai­ners.
  • -e WORDPRESS_DB_NAME=[name]: Die Vor­ein­stel­lung ist “wordpress”.

Für eine erhöhte Si­cher­heit kann es hilfreich sein, Container nicht im Standard-Bridge-Netzwerk laufen zu lassen. Statt­des­sen kann ein eigenes Netzwerk genutzt werden:

docker network create my-wp-network
docker run --name my-db --network my-wp-network -e MYSQL_ROOT_PASSWORD=SICHERES_PASSWORT -d mysql:latest
docker run --name my-wordpress --network my-wp-network -p 8080:80 -d wordpress:latest

Hier sind Ihre Container iso­lier­ter von anderen Con­tai­nern, was das Risiko un­er­wünsch­ter Ver­bin­dun­gen ver­rin­gert. Zudem können Netz­werk­re­geln de­tail­lier­ter kon­fi­gu­riert werden, z. B. durch spezielle Firewall-Regeln oder den Einsatz eines Reverse Proxy.

Beenden der In­stal­la­ti­on in einem Browser

Für die letzten In­stal­la­ti­ons­schrit­te müssen Sie über einen Browser auf den WordPress-Container zugreifen.

Im vor­he­ri­gen Beispiel haben wir den Port 8080 auf dem Host auf den Port 80 (Web­ser­vices) auf dem Container gemapt. Auf diese Weise können Sie in einem Browser entweder über die IP-Adresse oder über die URL des Servers auf den Container zugreifen:

  • http://<server-ip>
  • http://example.com

Besuchen Sie die URL in einem Browser, wählen Sie Ihre In­stal­la­ti­ons­spra­che und klicken Sie dann auf Continue (Weiter).

Bild: Screenshot der WordPress-Sprachauswahl
Sie können in Ihrem Browser nun die In­stal­la­ti­ons­spra­che auswählen.

Auf der nächsten Seite erhalten Sie einen Hinweis, der Sie auf die weitere In­stal­la­ti­on vor­be­rei­tet. Klicken Sie auf die Schalt­flä­che „Let’s go!“, um fort­zu­fah­ren.

Bild: Screenshot des WordPress-Installationshinweises
Der In­stal­la­ti­ons­hin­weis von WordPress setzt Sie über den nächsten Schritt des Setups in Kenntnis.

Nun müssen Sie Ihre Datenbank angeben, sodass die wp-config.php-Datei erstellt werden kann:

Bild: Screenshot der WordPress-Datenbankverbindung
Geben Sie die an­ge­for­der­ten In­for­ma­tio­nen zu Ihrer Datenbank an.

Beachten Sie, dass der Default-User, sofern nicht anders spe­zi­fi­ziert, „root“ ist, und geben Sie hier den Namen Ihrer er­stell­ten Datenbank sowie das gewählte Passwort an. Ein Klick auf „Submit“ leitet Sie weiter durch den In­stal­la­ti­ons­pro­zess.

Bild: Screenshot der WordPress-Installation: Angaben zur WordPress-Seite
Geben Sie die an­ge­for­der­ten In­for­ma­tio­nen zu Ihrer WordPress-Seite an.
  • Titel der Website: Füllen Sie den Titel Ihrer Website aus.
  • Be­nut­zer­na­me: Dies ist der wich­tigs­te ad­mi­nis­tra­ti­ve Be­nut­zer­na­me für Ihre Website. Hinweis: Aus Si­cher­heits­grün­den empfehlen wir Ihnen, “Admin” oder den Namen oder die URL Ihrer Website NICHT für diesen Be­nut­zer­na­men zu verwenden.
  • Passwort: Notieren Sie sich dieses Passwort, bevor Sie fort­fah­ren.
  • Deine E-Mail: Dies ist die E-Mail-Adresse für den wich­tigs­ten ad­mi­nis­tra­ti­ven Be­nut­zer­na­men.

Klicken Sie dann auf die Schalt­flä­che WordPress in­stal­lie­ren, um die In­stal­la­ti­on ab­zu­schlie­ßen.

Bild: Screenshot der erfolgreichen WordPress Installation
Die Er­folgs­mel­dung zeigt an, dass die In­stal­la­ti­on geklappt hat.

Nach ge­glück­ter In­stal­la­ti­on erhalten Sie eine Er­folgs­mel­dung und können sich an­schlie­ßend bei WordPress einloggen.

Mit Docker Compose WordPress ausführen

Die Ver­wen­dung von Docker Compose zur Aus­füh­rung von WordPress ist ebenfalls eine Mög­lich­keit. In­for­ma­tio­nen zur In­stal­la­ti­on und Ver­wen­dung von Docker Compose finden Sie in unserem Artikel Docker-Or­chestra­ti­on mit Swarm und Compose. Grund­sätz­lich er­mög­licht Ihnen das Tool, alle be­nö­tig­ten Dienste in nur einer einzigen Datei zu de­fi­nie­ren und gemeinsam zu starten.

YAML-Datei erstellen

Erstellen Sie zunächst ein Ver­zeich­nis für Ihr Projekt und wechseln Sie in dieses:

sudo mkdir wordpress
cd wordpress

Erstellen Sie eine YAML-Datei namens docker-compose.yml mit dem Befehl:

sudo nano docker-compose.yml

Der Inhalt der Datei variiert leicht, je nachdem, ob Sie MySQL oder MariaDB verwenden:

MySQL

Fügen Sie Folgendes in die Datei ein:

wordpress:
    image: wordpress:latest
    links:
        - wordpress_db:mysql
    ports:
        - 8080:80
wordpress_db:
    image: mysql
    environment:
        MYSQL_ROOT_PASSWORD: SICHERES_PASSWORT

Speichern und beenden Sie die Datei.

MariaDB

Fügen Sie Folgendes in die Datei ein:

wordpress:
    image: wordpress:latest
    links:
        - wordpress_db:mariadb
    ports:
        - 8080:80
wordpress_db:
    image: mariadb
    environment:
        MYSQL_ROOT_PASSWORD: SICHERES_PASSWORT

Speichern und beenden Sie die Datei.

Starten Sie die Container

Als nächstes verwenden Sie Docker Compose, um diese Container mit folgendem Befehl zu starten:

sudo docker-compose up -d

Mit diesem Befehl können Sie über­prü­fen, ob die Container erstellt wurden:

sudo docker-compose ps

Um die In­stal­la­ti­on ab­zu­schlie­ßen, besuchen Sie den WordPress-Container in einem Browser. Verwenden Sie hierzu entweder die IP-Adresse oder die URL des Servers:

  • http://192.168.0.1
  • http://example.com

Ku­ber­netes für ska­lier­ba­re WordPress-De­ploy­ments

Für größere und pro­duk­ti­ve Setups kann Ku­ber­netes (K8s) genutzt werden. Mit Ku­ber­netes lassen sich WordPress-Container über mehrere Knoten hinweg or­ches­trie­ren und au­to­ma­tisch verwalten. Die Nutzung eines Ku­ber­netes Clusters bietet eine Reihe von Vorteilen wie au­to­ma­ti­sche Ska­lie­rung, Self-Healing-Me­cha­nis­men und ein zentrales Ma­nage­ment von Res­sour­cen. Eine Im­ple­men­tie­rung kann bei­spiels­wei­se mit Helm, einem Pa­ket­ma­na­ger für Ku­ber­netes, erfolgen:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancer

Dies sorgt für eine aus­fall­si­che­re, ska­lier­ba­re WordPress-Be­reit­stel­lung mit Load Balancing, au­to­ma­ti­schen Updates und Failover-Support.

New call-to-action
Zum Hauptmenü