GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So installieren Sie WordPress mit Docker

Übersicht

In diesem Artikel werden wir die Schritte zur Installation von WordPress mit Docker durchgehen. Mit anderen Worten, wir werden WordPress mit einem Docker-Container und auch mit Docker Compose installieren. Das Szenario für das folgende Verfahren sieht wie folgt aus:Einzelner Hostcomputer (ein Debian-Server) und eine einzelne laufende Docker-Engine. Wir werden einen offiziellen WordPress-Docker-Container auf unserem Host installieren und auch die Datenpersistenz einrichten. Diese Methode funktioniert natürlich auch auf anderen Linux-Host-Rechnern, solange die Docker-Engine läuft.

Anforderungen:

  • Linux-Host
  • Docker installiert und ausgeführt.

Docker installieren

Für die Docker-Installation können wir das offizielle Docker-Skript zur automatischen Installation verwenden, wenn Sie Debian, Ubuntu oder Raspbian als Host verwenden. Andernfalls lesen Sie die Docker-Dokumentation oder diesen Beitrag.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Docker zu Ihrer Benutzergruppe hinzufügen:

sudo usermod -aG Docker 

Installieren Sie WordPress mithilfe des Docker-Containers

Um den WordPress-Docker-Container zu installieren, können wir die folgenden Befehle verwenden:

docker run --name some-wordpress -p 8080:80 -d wordpress

Dadurch wird ein Docker-Container bereitgestellt, der den Webserver, die WordPress-Installation, PHP und den MySQL(MariaDB)-Datenbankserver ausführt. Diese Option ist keine ideale Bereitstellung, da alles darauf, sogar Website-Daten, im Container verbleiben und gespeichert werden und bei jedem Neustart des Containers alle Daten verloren gehen. Aus diesem Grund ist es ein Muss, persistente Daten für WordPress zu haben (Speichern von Daten auf dem Host). Für diese Art der Bereitstellung wird empfohlen, die WordPress-Container wie folgt auszuführen:

DB-Container:

docker run -e MYSQL_ROOT_PASSWORD= -e MYSQL_DATABASE=wordpress --name wordpressdb -v "$PWD/database":/var/lib/mysql -d mariadb :latest --restart:unless-stopped

WordPress container:

docker run -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD= --name wordpress --link wordpressdb :mysql -p 80:80 -v "$PWD/html":/var/www/html -d wordpress --restart:unless-stopped

Bei dieser Art der Bereitstellung haben wir Datenbank- und WordPress-Container separat bereitgestellt. Aufschlüsselung der Befehle:

DB-Container:

-e: Mit dem Argument -e setzen wir die Umgebungsvariablen, die in diesem Fall die Datenbankanmeldeinformationen und -parameter (das Passwort und der Datenbankname) sind.

–Name: Name-Argument ist, wie wir den Namen für unseren Datenbank-Container-Namen festlegen werden.

-v: Mit diesem Argument setzen und mounten wir ein Verzeichnis auf unserem Hostserver, in dem der Container alle Datenbankdaten speichern wird, und nicht innerhalb des Containers. Dieser Parameter ist wichtig, da er die Datenpersistenz einstellt.

-d: Mit diesem Argument wählen wir unser Docker-Container-Image aus, in diesem Fall haben wir das neueste Mariadb-Datenbank-Image verwendet.

–Neustart: Argument, das den Docker-Daemon anweist, den Container jedes Mal neu zu starten, wenn der Container gestoppt wird.

WordPress-Container:

-e: für den WordPress-Docker-Container setzen wir Umgebungsvariablen, die auch Datenbank-Container-Parameter sind, damit WordPress auf die Datenbank zugreifen kann.

–Name: auch ein Argument, um den Namen für den WordPress-Container festzulegen.

–link: Datenbanklink-Argument (um unsere Datenbankverbindung von Wodpress zum MariaDB-Container einzurichten).

HINWEIS: Zum –Link Argument, Docker hat angekündigt, dass dies irgendwann in der Zukunft das Legacy-Feature sein wird und es möglicherweise in den zukünftigen Docker-Updates entfernt wird und Ihre Datenbank-Container-Verbindung unterbrechen kann. Wenn Sie diese Art der Bereitstellung planen, ist es aus diesem Grund vorzuziehen, dieses WordPress-Setup mit Docker Compose oder als Stack bereitzustellen, bei dem WordPress vom Docker-Netzwerk abhängt, um eine Verbindung zur MariaDB-Datenbank herzustellen. Dies wird im nächsten Kapitel behandelt.

-p: Offengelegte Portvariable. Welche Ports auf dem Host und auf dem Container verfügbar gemacht werden müssen, damit WordPress öffentlich zugänglich ist.

 -v: Der Einhängepunkt auf dem Host-Rechner, wo wir ein Verzeichnis vom Host hinzufügen und die WordPress-Dateien speichern werden – auch bekannt als Datenpersistenz.

-d: Das Docker-Image, das wir verwenden werden.

–Neustart: Argument, das den Docker-Daemon anweist, den Container jedes Mal neu zu starten, wenn der Container gestoppt wird.

Docker-Compose-Version

Installieren Sie Docker compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr /local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

sudo ln -s /usr/local/bin/docker -compose /usr/bin/docker-compose

In den Docker-Dokumenten finden Sie die neueste Version von Docker Compose.

Sie können ein separates Verzeichnis für diese Compose-Datei und innerhalb des Verzeichnisses erstellen, in dem die Docker-Compose-Datei erstellt wird:

mkdir wordpress &&cd wordpress/

touch docker-compose.yml &&nano docker-compose.yml

Sie können die folgende Yaml-Konfiguration verwenden:

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db: 

Die Konfigurationsdatei ist den Befehlszeilen zum Bereitstellen des Containers aus dem vorherigen Kapitel ziemlich ähnlich.

Um den Stack bereitzustellen, während Sie sich noch im Compose-Dateiverzeichnis befinden, führen Sie den folgenden Befehl aus:

sudo docker-compose up -d

Es dauert einige Minuten, bis die Bereitstellung abgeschlossen ist.

Als Stapel bereitstellen

Um WordPress als Stack mit Docker oder Docker Compose bereitzustellen, benennen Sie die Konfigurationsdatei als stack.yml und führen Sie einen der folgenden Befehle aus:

Docker

docker stack deploy -c stack.yml wordpress

Docker compose

docker-compose -f stack.yml up

Unabhängig davon, welchen Schritt Sie für die Bereitstellung wählen, sollte das erfolgreiche Ergebnis in etwa so aussehen: 

Und nachdem Sie über den Browser auf die WordPress-Installation zugreifen können:

HINWEIS: Wenn Sie eine laufende UFW- oder IPTABLES-Firewall haben, müssen Sie die richtigen Ports öffnen (die Ports, die Sie für den Host-Computer freigegeben haben), um über den Browser auf WordPress zugreifen zu können:

UFW

sudo ufw allow 8080

IPTABLES

sudo iptables -I INPUT -p tcp -m tcp --dport 8080 -j AKZEPTIEREN

oder

sudo iptables -A INPUT -p tcp -m tcp --dport 8080 -j AKZEPTIEREN

Zusammenfassung

Um den Artikel zusammenzufassen – wir haben die Schritte zur Installation von WordPress mit Docker und auch zur Installation von WordPress mit Docker Compose gezeigt. Wie Sie bemerkt haben, haben wir mehrere Möglichkeiten, WordPress mit Docker und Docker Compose bereitzustellen. Aber insgesamt ist die bevorzugte Methode, einen separaten Container für WordPress und für den MariaDB/MySQL-Server zu haben. Für eine einfachere Skalierbarkeit in der Zukunft ist auch Datenpersistenz ein Muss.

Vielen Dank für Ihre Zeit…


Docker
  1. So installieren Sie WordPress mit Docker auf Ubuntu

  2. So installieren Sie Docker mit Ansible [Debian/Ubuntu]

  3. So installieren Sie WordPress mit Docker

  4. So installieren Sie Docker unter CentOS

  5. Installieren Sie Docker und WordPress auf Ubuntu

Installieren Sie Navidrome mit Docker

So installieren Sie den Ubuntu 22.04 LTS-Container auf Docker

So installieren Sie das AlmaLinux 8-Image im Docker-Container

So installieren Sie Gitea auf Ubuntu mit Docker

So installieren Sie Docker auf dem Mac

So installieren Sie WordPress mit Softaculous