En esta nueva entrega vamos a detallar el paso a paso para instalar WordPress, con Apache y MySQL, en un entorno de contenedores con Docker.
Antes de empezar, tenemos que validar que tenemos instalado Docker en nuestro servidor. Si no lo tenemos, podemos hacer uso de la guía de instalación que podéis encontrar en mi blog.
Antes de empezar, vamos a crear en nuestro servidor un par de carpetas para alojar en local los datos de nuestro proyecto.
mkdir ~/miwordpress
cd ~/miwordpress
MySQL con Docker
Lo primero, necesitamos disponer de una base de datos. Hay contenedores para la mayoría de bases de datos (MariaDB, PostgreSQL, etc…) pero en este caso vamos a utilizar el de MySQL.
En nuestro caso, vamos a utilizar la imagen latest almacenada en Docker Hub. En este momento es la 8.0.29-debian.
Podemos lanzar la instalación con el siguiente comando:
docker run --name mimysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=wordpress -v "$PWD/database":/var/lib/mysql -d mysql:latest
A continuación se descargara la imágenes y procederá con la ejecución.

En este comando le hemos indicado los siguientes parámetros:
Parámetro | Función |
---|---|
–name | Nombre del contenedor |
-e MYSQL_ROOT_PASSOWORD | Contraseña del usuario root de la base de datos MySQL |
-e MYSQL_DATABASE | Nombre de la base de datos |
-v «$PWD/database»:/var/lib/mysql | Montar un directorio local dentro del contenedor. El primer directorio es el local (el servidor donde corren los contenedores) y el segundo es la ruta en el propio contenedor. |
-d | Opción «detached» para que corra el contenedor en segundo plano. |
mysql:latest | Imagen que vamos a utilizar del repositorio de Docker Hub |
Una vez terminada la ejecución del pod, podemos validar que nuestro contenedor está iniciado correctamente ejecutando docker ps.

Con esto, ya tenemos nuestra base de datos preparada y podemos proceder con la instalación de WordPress.
WordPress con Docker
Por último, vamos a utilizar la imagen oficial de WordPress que podemos encontrar en Docker Hub. Para ejecutarla, utilizaremos los siguientes comandos:
docker run -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=my-secret-pw --name wordpress --link mimysql:mysql -p 80:80 -v "$PWD/html":/var/www/html -d wordpress

En este comando, hemos utilizado los siguientes parámetros:
Parámetro | Función |
---|---|
-e WORDPRESS_DB_USER | Indicamos el usuario de la base de datos MySQL. |
-e WORDPRESS_DB_PASSWORD | Indicamos la contraseña de la base de datos MySQL. |
–name | Nombre del contenedor. |
–link mimysql:mysql | Permitimos la conexión entre ambos el pod de WordPress y el pod de MySQL. |
-p 80:80 | Habilitamos el acceso por el puerto 80 desde el exterior. |
-v «$PWD/html»:/var/www/html | Montar un directorio local dentro del conector. El primer directorio es el local (el servidor donde corren los contenedores) y el segundo es la ruta en el propio contenedor. |
-d | Opción «detached» para que corra el contenedor en segundo plano. |
wordpress | Imagen que vamos a utilizar del repositorio de Docker Hub. |
Como en el caso anterior, podemos validar con docker ps que nuestros contenedores están corriendo correctamente.

Para acceder a nuestro WordPress, abrimos cualquier navegador y accedemos a http://localhost y se nos debería mostrar el configurador para finalizar la instalación de nuestro WordPress.

Modificando algunos parámetros, como el puerto, los nombres o los directorios locales, podríamos disponer de varios entornos de WordPress ejecutándose en nuestro mismo equipo.
¡Comentadme si os ha funcionado!
Hugo, que gran trabajo! Buenísimo el tutorial así como tu trabajo.