GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo instalar WordPress usando Docker

Resumen

En este artículo, vamos a seguir los pasos para instalar WordPress usando Docker. En otras palabras, vamos a instalar WordPress con un contenedor Docker y también con Docker compose. El escenario para el siguiente procedimiento se verá de la siguiente manera:una sola máquina host (un servidor Debian) y un solo motor docker en ejecución. Vamos a instalar un contenedor docker oficial de WordPress en nuestro host y configurar la persistencia de datos también. Este método, por supuesto, funcionará en otras máquinas host Linux siempre que ejecute el motor docker.

Requisitos:

  • Alojamiento Linux
  • Docker instalado y funcionando.

Instalar Docker

Para la instalación de Docker, podemos usar el script Docker oficial de instalación automática si está usando Debian, Ubuntu, Raspbian como host. De lo contrario, consulte los documentos de Docker o esta publicación.

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

Agregue docker a su grupo de usuarios:

sudo usermod -aG docker <username>

Instalar WordPress utilizando el contenedor Docker

Para instalar el contenedor docker de WordPress, podemos usar los siguientes comandos:

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

Esto implementará un contenedor Docker que ejecutará el servidor web, la instalación de WordPress, PHP y el servidor de base de datos MySQL (MariaDB). Esta opción no es una implementación ideal, ya que todo lo que contiene, incluso los datos del sitio web, permanecerán y se almacenarán dentro del contenedor y cada vez que se reinicie el contenedor, se perderán todos los datos. Es por eso que es imprescindible tener datos persistentes para WordPress (almacenar datos en el host). Para ese tipo de implementación, se sugiere ejecutar los contenedores de WordPress de la siguiente manera:

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

En este tipo de implementación, implementamos contenedores de base de datos y wordpress por separado. Desglosando los comandos:

Contenedor de base de datos:

-e: con el argumento -e establecemos las variables de entorno que serán en este caso las credenciales y los parámetros de la base de datos (la contraseña y el nombre de la base de datos).

–nombre: El argumento de nombre es cómo vamos a establecer el nombre para el nombre del contenedor de nuestra base de datos.

-v: con este argumento, configuramos y montamos un directorio en nuestro servidor host donde el contenedor guardará todos los datos de la base de datos y no dentro del contenedor. Este parámetro es importante ya que establecerá la persistencia de los datos.

-d: con este argumento seleccionamos la imagen de nuestro contenedor docker, en este caso usamos la última imagen de la base de datos mariadb.

–reinicio: Argumento que indicará al demonio Docker que reinicie el contenedor cada vez que se detenga.

Contenedor de WordPress:

-e: para el contenedor de la ventana acoplable de WordPress, establecemos variables de entorno que también son parámetros del contenedor de la base de datos para que WordPress pueda acceder a la base de datos.

–nombre: también un argumento para establecer el nombre del contenedor de wordpress.

–enlace: Argumento de enlace de base de datos (para configurar nuestra conexión de base de datos de Wodpress al contenedor MariaDB).

NOTA: Con respecto al –enlace argumento, Docker anunció que esta será en algún momento en el futuro la característica heredada y puede eliminarse en las futuras actualizaciones de Docker y puede romper la conexión del contenedor de la base de datos. Por esa razón, si planea tener este tipo de implementación, es preferible implementar esta configuración de WordPress con la composición de Docker o como una pila donde WordPress dependerá de la red de Docker para conectarse a la base de datos de MariaDB. Esto se trata en el siguiente capítulo.

-p: Variable de puerto expuesta. Qué puertos exponer en el host y en el contenedor para que WordPress sea accesible públicamente.

 -v: El punto de montaje en la máquina host donde vamos a agregar un directorio desde el host y guardar los archivos de WordPress, también conocido como persistencia de datos.

-d: La imagen acoplable que usaremos.

–reinicio: Argumento que indicará al demonio Docker que reinicie el contenedor cada vez que se detenga.

Versión de redacción de Docker

Instalar la composición de Docker:

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

Consulte los documentos de docker para ver la versión más reciente de docker compose.

Puede crear un directorio separado para este archivo de composición y dentro del directorio para crear el archivo de composición de Docker:

mkdir wordpress && cd wordpress/

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

Puede usar la siguiente configuración de 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:

El archivo de configuración es bastante similar a las líneas de comando para implementar el contenedor del capítulo anterior.

Implemente la pila, mientras aún está en el directorio de archivos de composición, ejecute el comando:

sudo docker-compose up -d

Tardará un par de minutos en finalizar la implementación.

Implementar como pila

Para implementar WordPress como pila con Docker o docker compose, nombre el archivo de configuración como stack.yml y ejecute uno de los siguientes comandos:

Docker

docker stack deploy -c stack.yml wordpress

Docker compose

docker-compose -f stack.yml up

Independientemente del paso que elija para la implementación, el resultado exitoso debería ser algo como esto: 

Y después puede acceder a la instalación de WordPress a través del navegador:

NOTA: Si tiene un firewall UFW o IPTABLES en ejecución, es necesario abrir los puertos adecuados (los puertos que expuso para la máquina host) para acceder a WordPress a través del navegador:

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

Resumen

Para resumir el artículo, mostramos los pasos sobre cómo instalar WordPress usando Docker y también cómo instalar WordPress usando Docker compose. Como notó, tenemos varias formas de implementar WordPress usando Docker y Docker compose. Pero, en general, el método preferido es tener un contenedor separado para WordPress y para el servidor MariaDB/MySQL. Para una escalabilidad más simple en el futuro y también la persistencia de datos es imprescindible.

Gracias por su tiempo…


Docker
  1. Cómo instalar WordPress usando Nginx en Ubuntu 18.04

  2. Cómo instalar WordPress con Docker en Ubuntu

  3. Cómo instalar Docker usando Ansible [Debian/Ubuntu]

  4. Cómo instalar WordPress usando Docker

  5. Cómo instalar Vim en un contenedor Docker

Instalar Navidrome usando Docker

Cómo instalar el contenedor Ubuntu 22.04 LTS en Docker

Cómo instalar la imagen de AlmaLinux 8 en Docker Container

Cómo instalar Gitea en Ubuntu usando Docker

Cómo instalar Docker en Mac

Cómo instalar WordPress usando Softaculous