
En este artículo voy a explicar cómo montar un entorno de pruebas WordPress con Docker en tu sistema Linux.
Y te preguntarás, ¿para qué puede querer un tester hacer esto?
Pues para un montón de cosas interesantes, por ejemplo:
- Disponer de una plataforma web para tus pruebas y experimentos. Podrás probar todo tipo de frameworks de pruebas contra una plataforma web que no importa si acabas estropeando… Si deja de funcionar por algún motivo montas otra en un pis-pas y continuas.
- Puedes montar un ecommerce (con woocomerce por ejemplo) en menos de 5 minutos para entrenarte en pruebas relacionados con el comercio electrónico.
- Disponer de un WordPress listo para desplegar es muy cómodo con Docker, ya que puedes crearte blueprints (imágenes pre-configuradas) de diferentes tipos de webs. Por ejemplo puedes tener un blueprint de un ecommerce, otro de un blog, otro de una plataforma de matching, etc… con los plugins ya precargados y configurados…
- Si eres un tester que te gusta compartir tu conocimiento con el Mundo, posiblemente ya tendrás un blog en WordPress. Pues esta es la manera perfecta de tener un stage de tu blog en local para probar los últimos cambios que se te ocurran. Y luego hacer el deploy a producción.
- Que seas tester no quiere decir que no te guste desarrollar. Puede interesarte implementar algún plugin o theme. Pues esta es la solución perfecta para montarte tu entorno de desarrollo y pruebas.
Una vez vistas todas las ventajas de montarte un WordPress en local, entiendo que no puedas esperar a empezar. Por lo tanto, vamos al lío 🙂
Contents
Qué es Docker
De forma muy resumida, podemos decir que Docker es una tecnología que permite crear contenedores ligeros y modulares que se ejecutan como máquinas virtuales.
En dichos contenedores se pueden ejecutar aplicaciones las cuales son gestionadas por el SO del afitrión (nuestro ordenador).
Por lo tanto, cuando se ejecuta una aplicación en un contenedor se comparten un montón de recursos entre el anfitrión y el huésped (el contenedor que ejecutamos) y gracias a esto todo es mucho más rápido y eficiente.
Es increíble la rapidez con la funciona una aplicación que se ejecuta en contenedores comparando el mismo escenario montado en máquinas virtuales.
Instalación de Docker en Linux
Una vez visto en qué consite Docker vamos a empezar a trabajar con él.
Lo primero es la instalación. En nuestro caso vamos a trabajar en un entorno Linux, pero lo mismo se podría montar en Windows o Mac.
Abrimos la consola de comandos e introducimos la siguiente instrucción:
Para no tener que usar siempre la instrucción sudo al ejecutar Docker podemos añadir nuestro usuario al grupo de Docker (cerrar y abrir sesión del usuario para que coja el cambio).
Y con estos simples pasos ya tenemos Docker listo para usar.
Instalación de Docker en Win y Mac
Si estás utilizas Win o Mac aqui tienes las instrucciones para su instalación.
Yo continuo en Linux.
Hello World con Docker
Para ver como funciona Docker y familiarizarnos con él, vamos a crear el típico Hola Mundo.
Para empezar ejecutamos el siguiente comando en nuestra consola de comandos:
Lo que nos está diciendo en la primera parte de la respuesta es que no encuentra entre nuestros repositorios en local el elemento Hola Mundo, y te indica que se lo va a descargar del repositorio público de Docker.
En la segunda parte de la respuesta, vemos que después de descargárselo ejecuta el contenedor y confirma que nuestra instalación funciona correctamente.
Con esto ya hemos visto cómo funciona Docker; le decimos que arranque un contenedor y si no lo tienes en tu instalación se lo descarga del repositorio público según el nombre que le indiques.
Para ver los contenedores que tenemos en nuestra instalacion ejecutamos el siguente comando:
En su respuesta podemos ver que tenemos el Hola Mundo que acabamos de crear.
Si queremos eliminarlo únicamente tenemos que hacer un docker rm seguido del id del contenedor.
Es interesante tener claro que un contenedor es una instancia de una imagen. Es decir, lo que te descargas del repositorio público de Docker son imágenes y cuando se arranca una instancia de la misma, es lo que genera un contenedor.
Teniendo en cuenta que puedes tener varias instancias (contenedores) de la misma imagen corriendo al mismo tiempo.
Una vez tengas tu configuración terminada puedes crear una imagen (a través del fichero Dockerfile) y subirla al hub de Docker para reutilizarla cuando quieras.
Arrancando un entorno WordPress en Docker
Como puedes imaginar en el repositorio de Docker existen ya imágenes de WordPress preparados para usarse, y es los que vamos a utilizar para crear nuestro entorno en local.
Lo único que hay que tener en cuenta, es que para crear nuestro entorno de WordPress no solo necesitamos un contenedor con el software del CMS en sí. Necesitamos también un contenedor para la base de datos.
Por lo tanto, tenemos que configurar dos contenedores dependientes uno del otro.
Fichero docker-compose.yml
Para manejar esto y hacerlo más fácil, Docker dispone de un fichero en el que configuras los contenedores que quieres arrancar, con sus características, dependencias, etc…
El fichero es docker-compose.yml.
A modo de ejemplo vamos a crear un fichero que levantará WordPress en Docker.
Y pegamos en el fichero es siguiente contenido:
Si analizamos el fichero vemos que es bastante sencillo. Se indican las siguietes cosas:
- Vamos a arrancar primero el contenedor MySql, en su versión 5.7.
- Se va a mapear el puerto 8081 del anfitrión (nuestra máquina) al 3306 del huésped (contenedor) con MySql.
- Con el parámetro volumes en el módulo de MySql le estás diciendo que guarde los datos en tu máquina local. Esto hará que los datos sean persistente aunque hagas un DOWN del contenedor.
- Se indica información de usuario y password de DDBB.
- Luego vemos que se indica arrancar el segundo contenedor WordPress en su última versión.
- Se arrancará el servicio web en el puerto 8080.
- Y depende del módulo MySql que está arrancado en el puerto 3306.
- Con el parámetro volumes le estás indicando a Docker que te de acceso al directorio html del contenedor desde tu máquina local. Esto viene muy bien para poder editar el código de WordPress.
El siguiente paso es arrancar los contenedores que acabamos de definir. Nos situamos en el mismo directorio que contiene el fichero compose y ejecutamos lo siguiente:
Con este comando Docker se ha descargado los contenedores de WordPress y Mysql del repositorio general y ha puesto en marcha el entorno.
Solo tenemos que ir a nuestro navegador e ir a la dirección:
NOTA: después del UP puede tardar un par de minutos en arrancar el servidor aunque el contenedor te diga que está arrancado.
Y con esto ya está todo OK. Enhorabuena :).
Ya deberías tener tu WordPress listo para completar la instalación y empezar a trabajar con él.

Si queresmo, por lo que sea, arrancar otro WordPress en paralelo, lo único que tenemos que hacer es repetir todo los pasos anteriores pero cambiando los puertos para que no existan conflictos.
Cambiar únicamente el puerto 8080 por el 8082 para WordPress y el 8081 por el 8083 para MySQL.
Para parar el entorno de manera que los datos sean persistentes, tendrás que ejecutar esta sentencia:
Si en lugar de ejecutar un STOP ejecutas un DOWN, al haber definido en el fichero compose los parámetros volumes, los datos seguirán siendo persistentes.
Pero si no hubieras definido los parámetros volumes y ejecutaras un DOWN, al hacer de nuevo un UP empezaría de nuevo la instalación de WordPress perdiendo todos los datos y configuración.
Cómo clonar contenedores Docker con WordPress
Como ya habíamos comentado antes, todo esto puede ser muy útil para crearte blueprints de diferentes tipos de plataformas (ecommerces, blogs, marketplaces, membersit sites, etc…) y desplegarlos en local en menos de 5 minutos.
Para esto, he probado un método que funciona, es rápido y es el que os voy a contar.
La idea es desplegar un WordPress limpio como hemos comentado en las secciones anteriores para después, cargarle la imagen de la web que nos interese que previamente hemos creado con el fantástico plugin Duplicator de wordpress.
Los pasos serían los sigiientes:
- Creas un sitio web en WordPress con la configuración, contenido, plugins, thems, etc.. que te interese.
- Después, a través del plugin Duplicator creas una imagen de este sitio con la BBDD incluida.
- Creas un contenedor WordPress en tu local, con los volumes configurados tal y como describo en secciones anteriores.
- Después de crear dicho WordPress limpio, antes de instalarlo vas al direcotorio ~/docker/nombre_web/wordpress_files y eliminas todo su contenido.
- En el directorio vacío colocas la imagen que creó Duplicator y el fichero php de instalación installer.php.
- Vas al navegador y escribes “http://localhost:8080/installer.php“
- Sigues los pasos que te indicar el instalador y ¡¡magia!! ya tienes la réplica de tu sitio web!! 😀
Este procedimiento también lo puedes utilizar para crearte el stage (sitio de pruebas) de tu web que ya tengas en producción.
Es un proceso fácil y rápido que no tiene pérdida. No voy a desarrollarlo más en detalle porque no creo que valga la pena pero si tienes dudas puedes contactar conmigo a través de los comentarios y estaré encantado de guiarte.
Chuleta comandos básicos Docker usados en esta guía.
Os pongo una chuletilla de los comandos que hemos ido usando:
Y hasta aquí la guía de cómo montar un wordpress en local con contenedores Docker.
La rapidez con la que funciona WordPress es impresionante, es una solución rápida, cómoda y ligera para tener en local el CMS más utilizado del mercado (el 60% de los CMSs son WordPress según w3techs).
Espero que os haya sido útil y si es así, por favor dejad un comentario y compartid en redes sociales.
Y si os interesa recibir en el correo los artículos que voy publicando, podéis suscribiros a mi lista de correo:
Un saludo y hasta la próxima.
Deja una respuesta