Bereitstellen von WordPress in Docker Containern

Erfahren Sie, wie Sie eine WordPress-Installation in Docker-Containern ausführen, sowohl manuell als auch mit Docker Compose. WordPress-Entwickler werden es nützlich finden, WordPress in Docker-Containern einzusetzen. Docker ermöglicht es Ihnen, mit mehreren WordPress-Konfigurationen zu testen und mit ein paar einfachen Befehlen eine neue WordPress-Installation zu starten.

Anforderungen

  • Ein Server, auf dem CentOS 7 oder Ubuntu 14.04 läuft.
  • Installierte und ausgeführte Webservices.
  • Docker installiert und läuft.
  • Grundkenntnisse in der Verwendung von Docker und Kommandozeilen-Befehlen.
  • Optional: Ein grundlegendes Verständnis von Docker Compose.

Ausführen von WordPress in Docker Containern

Eine erfolgreiche WordPress-Installation besteht aus drei Elementen:

  • Der WordPress-Software

  • Einer MySQL- oder MariaDB-Datenbank

  • Den letzten Installationsschritten, die in einem Browser durchgeführt werden

Für die folgenden Beispiele werden die Komponenten WordPress und MySQL/MariaDB in separaten verknüpften Containern ausgeführt. Der Container, auf dem die WordPress-Software läuft, wird einem Port auf dem Host zugeordnet, so dass Sie in einem Browser darauf zugreifen können.

Ausführen eines MySQL/MariaDB-Containers

Führen Sie zunächst einen Container namens my-db mit dem Root-Passwort mysql-password aus. Sie können entweder MySQL oder MariaDB verwenden, was ein Drop-In-Ersatz für MySQL ist.

Hinweis: Achten Sie darauf, dass Sie db-Passwort in ein sicheres Passwort ändern.

MySQL

Starten Sie einen Container mit dem Befehl:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=db-password -d mysql

MariaDB

Starten Sie einen Container mit dem Befehl:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=db-password -d mariadb

Ausführen eines WordPress-Containers

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

Zwei Anmerkungen:

  • Wenn Sie eine Firewall haben, müssen Sie möglicherweise den Zugriff auf Port 8080 hinzufügen.
  • Wenn Sie bereits einen anderen Dienst auf Port 8080 ausgefü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  

MariaDB

Starten Sie einen WordPress-Container mit dem Befehl:

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

Es gibt viele andere Umgebungsvariablen, die Sie zu diesem Befehl hinzufügen können, wenn Sie die Standardeinstellungen überschreiben möchten, einschließlich:

  • -e WORDPRESS_DB_HOST=[hostname] Der Standard ist die IP-Adresse und der Port des verknüpften MySQL/MariaDB-Containers. 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 Umgebungsvariable MYSQL_ROOT_PASSWORD des verknüpften MySQL/MariaDB-Containers.
  • -e WORDPRESS_DB_NAME=[name] Die Voreinstellung ist "wordpress".

Beenden der Installation in einem Browser

Für die letzten Installationsschritte müssen Sie über einen Browser auf den WordPress-Container zugreifen.

Im vorherigen Beispiel haben wir den Port 8080 auf dem Host auf den Port 80 (Webservices) 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:

Besuchen Sie die URL in einem Browser, wählen Sie Ihre Installationssprache und klicken Sie dann auf Continue (Weiter).

WordPress

Auf der nächsten Seite füllen Sie die Felder aus.

WordPress
  • Titel der Website: Füllen Sie den Titel Ihrer Website aus.
  • Benutzername: Dies ist der wichtigste administrative Benutzername für Ihre Website. Hinweis: Aus Sicherheitsgründen empfehlen wir Ihnen, "Admin" oder den Namen oder die URL Ihrer Website NICHT für diesen Benutzernamen zu verwenden.
  • Passwort: Notieren Sie sich dieses Passwort, bevor Sie fortfahren.
  • Deine E-Mail: Dies ist die E-Mail-Adresse für den wichtigsten administrativen Benutzernamen.

Klicken Sie dann auf die Schaltfläche WordPress installieren, um die Installation abzuschließen.

Mit Docker Compose WordPress ausführen

Die Verwendung von Docker Compose zur Ausführung von WordPressIt ist einfach zu starten. Informationen zur Installation und Verwendung von Docker Compose finden Sie in unserem Artikel  Docker Container mit Docker Compose starten und orchestrieren.

YAML-Datei Erstellen

Erstellen Sie zunächst ein Verzeichnis 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
  links:
    - wordpress_db:mysql
  ports:
    - 8080:80

wordpress_db:
  image: mysql
  environment:
    MYSQL_ROOT_PASSWORD: db-password

Hinweis: Achten Sie darauf, dass Sie db-Password durch ein sicheres Passwort ersetzen.

Speichern und beenden Sie die Datei.

MariaDB

Fügen Sie Folgendes in die Datei ein:

wordpress:
  image: wordpress
  links:
    - wordpress_db:mariadb
  ports:
    - 8080:80

wordpress_db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: db-password

Hinweis: Achten Sie darauf, dass Sie db-Password durch ein sicheres Passwort ersetzen.

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 überprüfen, ob die Container erstellt wurden:

sudo docker-compose ps

Um die Installation abzuschließen, besuchen Sie den WordPress-Container in einem Browser. Verwenden Sie hierzu entweder die IP-Adresse oder die URL des Servers: