Cómo implementar WordPress con un contenedor Docker

WordPress es el CMS más extendido con diferencia. Por su parte, Docker se está convirtiendo en una herramienta muy deseable tanto en la etapa de desarrollo como en la etapa de producción, ya que nos permite ejecutar de manera aislada cualquier número de aplicaciones, lenguajes y herramientas en un mismo servidor, con versiones y configuraciones muy diferentes. ¿Por qué no mezclar ambos mundos y usar WordPress mediante contenedores con Docker? Afortunadamente no resulta una tarea compleja, como vas a comprobar en este artículo.

Qué necesitas para implementar WordPress en Docker

Para implementar WordPress con Docker necesitamos un servidor propio, ya sea un VPS, Cloud o Dedicado. Es cierto que esta infraestructura requiere un poco más de cuidado que un hosting tradicional, pero lo bueno es que podrás disponer de varios sitios o aplicaciones en un mismo servidor si lo necesitas. Actualmente la inversión para contar con tu propio servidor es muy baja, comenzando por los VPS de Arsys. Además te beneficiarás de un entorno configurable a tus necesidades y con toda la potencia que requieran tus aplicaciones. Una vez dentro del servidor necesitamos Docker y las siguientes configuraciones:

  • Dos contenedores, uno para la base de datos y otro para el servidor web
  • Gestión de volúmenes para el almacenamiento persistente

Instalación de Docker

El primer paso consiste en instalar Docker en el servidor. Si estamos contratando un servidor Cloud en Arsys podemos crear el servidor con Docker ya instalado de antemano. Para ello puedes seleccionar Docker en la sección de aplicaciones.Si lo deseas, también puedes instalar Docker manualmente. Para más información te recomendamos la lectura del artículo Cómo montar contenedores, que además te aclarará algunos conceptos que vamos a dar por sabidos en este post.

Configurar Docker Compose

Docker Compose es una herramienta que nos permite trabajar con varios contenedores a la vez, permitiendo que éstos se comuniquen entre sí. Docker Compose también ha sido materia de estudio de pasados post aquí en el blog de Arsys, por lo que vamos a dejar de lado las presentaciones. Si existe cualquier duda sería ideal consultar el post Crear un servidor Cloud con Docker.  Comenzaremos por instalar Docker Compose con el siguiente comando, dentro del servidor:

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

Luego tenemos que aplicar permisos al ejecutable:

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

Ahora creamos una carpeta para instalar el proyecto WordPress. Esta carpeta podría estar en cualquier localización del servidor.

mkdir wp-docker

cd wp-docker

A continuación vamos a crear el archivo para definir el stack de contenedores que se gestionarán con Compose. Para ello creamos el archivo docker-compose.yml con nuestro editor preferido.

nano docker-compose.yml

Este archivo tendrá un código similar al siguiente:

services:

  db:

    image: mysql:8

    volumes:

      - db_data:/var/lib/mysql

    restart: always

    environment:

      MYSQL_ROOT_PASSWORD: Passw0rd

      MYSQL_DATABASE: wordpress

      MYSQL_USER: wp_user

      MYSQL_PASSWORD: Passw0rd

  wordpress:

    depends_on:

      - db

    image: wordpress:latest

    volumes:

      - wordpress_data:/var/www/html

    ports:

      - "8000:80"

    restart: always

    environment:

      WORDPRESS_DB_HOST: db:3306

      WORDPRESS_DB_USER: wp_user

      WORDPRESS_DB_PASSWORD: Passw0rd

      WORDPRESS_DB_NAME: wordpress

volumes:

  db_data: {}

  wordpress_data: {}

En este archivo de Compose estamos definiendo las dos imágenes que necesitamos para ejecutar WordPress. Primero la imagen del servidor MySQL y luego la imagen de WordPress. Ambas imágenes tienen unos datos de configuración que se pueden ver en el propio código. Por supuesto, nosotros podemos cambiar la configuración a nuestras necesidades, sobre todo es importante escoger unas claves seguras para la base de datos. Además en el código de docker-compose.yml podrás observar que se han configurado un par de volúmenes, para los archivos de WordPress y para la persistencia de la base de datos.

Hacer el build de Compose

Una vez creado el archivo vamos a ejecutar este proyecto con el siguiente comando.

docker-compose up -d

En este momento comenzará la descarga de las imágenes y se pondrán en funcionamiento.

Acceder al sitio web para la instalación de WordPress

Al cabo de unos minutos podremos acceder al sitio web de WordPress en Docker, mediante la IP del servidor y el puerto 8000. Por supuesto, ese puerto debería estar abierto en el servidor para poder acceder a él. Si no es así, podemos editar las políticas de Firewall para conseguirlo. Esto es muy sencillo desde el panel de control de los servidores de Arsys.

Si nuestro firewall está instalado como software en el servidor, quizás con el popular «ufw», te interesará este post: Cómo configurar un firewall en servidores Linux. Abiertos los puertos del firewall ya podrás comenzar el proceso de instalación de WordPress.

Una vez completado el sitio WordPress, podemos acceder a nuestro blog:

Ya tenemos funcionando WordPress en Docker en un proceso que nos llevará tan solo unos minutos. Solo nos quedaría arreglar esta instalación de WordPress para que se pueda acceder a través de un dominio propio. Esta tarea la podríamos hacer fácilmente usando Nginx como proxy. Es una configuración que podremos ver en un siguiente post.

La copia de seguridad que necesitas para tus dispositivos, tus proyectos y tus datos
Accede a tus archivos desde cualquier dispositivo y lugar de forma segura
pack
10 GB
GRATIS
Consigue tu backup ahora