GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come installare WordPress utilizzando Docker

Panoramica

In questo articolo esamineremo i passaggi per installare WordPress utilizzando Docker. In altre parole, installeremo WordPress con un contenitore Docker e anche con Docker Compose. Lo scenario per la procedura seguente sarà il seguente:singola macchina host (un server Debian) e un singolo motore Docker in esecuzione. Installeremo un contenitore docker WordPress ufficiale sul nostro host e configureremo anche la persistenza dei dati. Questo metodo ovviamente funzionerà su altre macchine host Linux purché esegua il motore docker.

Requisiti:

  • Host Linux
  • Docker installato e funzionante.

Installa Docker

Per l'installazione della finestra mobile possiamo utilizzare lo script Docker di installazione automatica ufficiale se stai utilizzando Debian, Ubuntu, Raspbian come host. Altrimenti fai riferimento ai documenti Docker o a questo post.

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

Aggiungi la finestra mobile al tuo gruppo di utenti:

sudo usermod -aG docker <username>

Installa WordPress utilizzando il contenitore Docker

Per installare il contenitore Docker di WordPress, possiamo utilizzare i seguenti comandi:

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

Ciò distribuirà un contenitore Docker che eseguirà il server Web, l'installazione di WordPress, PHP e il server di database MySQL (MariaDB). Questa opzione non è una distribuzione ideale, principalmente perché tutto su di esso, anche i dati del sito Web rimarranno e verranno archiviati all'interno del contenitore e ogni volta che il contenitore viene riavviato, tutti i dati andranno persi. Ecco perché è indispensabile disporre di dati persistenti per WordPress (memorizzare i dati sull'host). Per quel tipo di distribuzione, si consiglia di eseguire i contenitori di WordPress come segue:

DB container:

docker run -e MYSQL_ROOT_PASSWORD=<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=<password> --name wordpress --link wordpressdb:mysql -p 80:80 -v "$PWD/html":/var/www/html -d wordpress --restart:unless-stopped

In questo tipo di distribuzione, abbiamo distribuito i contenitori di database e wordpress separatamente. Scomposizione dei comandi:

Contenitore DB:

-e: con l'argomento -e impostiamo le variabili d'ambiente che saranno in questo caso le credenziali e i parametri del database (la password e il nome del database).

–nome: name argomento è il modo in cui imposteremo il nome per il nome del contenitore del nostro database.

-v: con questo argomento impostiamo e montiamo una directory sul nostro server host in cui il contenitore salverà tutti i dati del database e non all'interno del contenitore. Questo parametro è importante poiché imposterà la persistenza dei dati.

-d: con questo argomento selezioniamo la nostra immagine del contenitore docker, in questo caso abbiamo utilizzato l'ultima immagine del database mariadb.

–riavvio: Argomento che indicherà al demone Docker di riavviare il container ogni volta che il container viene arrestato.

Contenitore WordPress:

-e: per il contenitore docker di WordPress impostiamo le variabili di ambiente che sono anche parametri del contenitore del database in modo che WordPress possa accedere al database.

–nome: anche un argomento per impostare il nome del contenitore wordpress.

–link: argomento collegamento database (per impostare la nostra connessione al database da Wodpress al contenitore MariaDB).

NOTA: Riguardo al –link argomento, Docker ha annunciato che questa sarà in futuro la funzionalità legacy e potrebbe essere rimossa nei futuri aggiornamenti di Docker e potrebbe interrompere la connessione del contenitore del database. Per questo motivo, se prevedi di avere questo tipo di distribuzione, è preferibile distribuire questa configurazione di WordPress con Docker Compose o come uno stack in cui WordPress dipenderà dalla rete Docker per connettersi al database MariaDB. Questo è trattato nel prossimo capitolo.

-p: Variabile della porta esposta. Quali porte esporre sull'host e sul container affinché WordPress sia accessibile pubblicamente.

 -v: Il punto di montaggio sulla macchina host in cui aggiungeremo una directory dall'host e salveremo i file di WordPress, ovvero la persistenza dei dati.

-d: L'immagine della finestra mobile che useremo.

–riavvio: Argomento che indicherà al demone Docker di riavviare il container ogni volta che il container viene arrestato.

Versione di composizione Docker

Installa Docker Componi:

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

Fare riferimento alla documentazione della finestra mobile per l'ultima versione di composizione della finestra mobile.

Puoi creare una directory separata per questo file di composizione e all'interno della directory per creare il file di composizione Docker:

mkdir wordpress && cd wordpress/

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

Puoi utilizzare la seguente configurazione di yaml:

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:

Il file di configurazione è abbastanza simile alle righe di comando per distribuire il contenitore del capitolo precedente.

Il deploy dello stack, mentre sei ancora nella directory di composizione del file, esegui il comando:

sudo docker-compose up -d

Ci vorranno un paio di minuti per completare la distribuzione.

Distribuisci come stack

Per distribuire WordPress come stack con Docker o Docker Compose, denomina il file di configurazione come stack.yml ed esegui uno dei seguenti comandi:

Docker

docker stack deploy -c stack.yml wordpress

Docker compose

docker-compose -f stack.yml up

Indipendentemente dal passaggio che scegli per l'implementazione, il risultato positivo dovrebbe essere simile al seguente: 

E dopo puoi accedere all'installazione di WordPress tramite il browser:

NOTA: Se hai un firewall UFW o IPTABLES in esecuzione, è necessario aprire le porte appropriate (le porte che hai esposto per la macchina host) per poter accedere a WordPress tramite browser:

UFW

sudo ufw allow 8080

IPTABLES

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

or

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

Riepilogo

Per riassumere l'articolo, abbiamo mostrato i passaggi su come installare WordPress utilizzando Docker e anche come installare WordPress utilizzando Docker Compose. Come hai notato, abbiamo diversi modi per delpoy WordPress usando Docker e Docker Compose. Ma nel complesso, il metodo molto preferito è avere un contenitore separato per WordPress e per il server MariaDB/MySQL. Per una scalabilità più semplice in futuro e anche la persistenza dei dati è un must.

Grazie per il tuo tempo...


Docker
  1. Come installare WordPress usando Nginx su Ubuntu 18.04

  2. Come installare Docker usando Ansible [Debian/Ubuntu]

  3. Come installare WordPress utilizzando Docker

  4. Come installare Docker su CentOS

  5. Installa Docker e WordPress su Ubuntu

Installa Navidrome usando Docker

Come installare il contenitore Ubuntu 22.04 LTS su Docker

Come installare AlmaLinux 8 Image in Docker Container

Come installare Gitea su Ubuntu usando Docker

Come installare Docker su Mac

Come installare WordPress usando Softaculous