Cómo Implementar WordPress con Docker: Guía Paso a Paso
Vamos a ver en detalle el procedimiento para configurar un sitio WordPress dockerizado de forma óptima. Seguiremos los siguientes pasos:
Índice
Instalación de requisitos previos
Lo primero que necesitamos es instalar Docker y Docker Compose en nuestro sistema operativo:
1. Docker: Puedes descargar el instalador para tu sistema operativo desde el sitio oficial de Docker: Sigue las instrucciones de instalación según tu caso.
2. Docker Compose: Una vez instalado Docker, abre una terminal y ejecuta el siguiente comando para instalar la última versión de Docker Compose
sudo curl -L "<https://github.com/docker/compose/releases/download/2.2.3/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Asegúrate de que Docker y Docker Compose funcionan correctamente consultando sus versiones:
docker -v
docker-compose -v
Si tienes alguna duda para instalar Docker te adjunto unos enlaces hacia la página oficial de Docker para cada sistema operativo:
De igual forma te adjunto un enlace hacia un tutorial completo de instalación de docker-compose para todos los sistemas operativos, tutorial para instalar docker-compose
Crear el archivo docker-compose.yml
El archivo docker-compose nos permite definir todos los servicios/contenedores que compondrán nuestro stack de WordPress. Nos dirigimos a la carpeta donde querramos tener el proyecto, después creamos un archivo llamado docker-compose.yml
con el siguiente contenido:
version: '3.8'
services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: secretpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: secretpassword
networks:
- wpsite
wordpress:
image: wordpress:latest
depends_on:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: secretpassword
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
networks:
- wpsite
volumes:
db_data: {}
wp_data: {}
networks:
wpsite:
driver: bridge
Analicemos brevemente lo que hace este archivo de configuración:
- Define dos servicios/contenedores(
db
ywordpress
): una base de datos MySQL y WordPress- Usa las imágenes oficiales(
image
) de MySQL 8 y WordPress latest(última versión de Wordpress)- Mapea los puertos necesarios para exponer WordPress y MySQL(
ports
)- Define las variables de entorno(
environment
) para conectar la base de datos- Volúmenes(
volumes
) para persistir los datos tanto de WordPress como de la base de datos- Una red interna para que los contenedores se comuniquen(
networks
)
¡Ya tenemos la infraestructura lista para desplegar WordPress con Docker!
Levantar los contenedores de WordPress
Ahora vamos a inicializar nuestra infraestructura ejecutando el archivo de docker compose que creamos antes, abrimos una terminal donde hemos creado nuestro docker-compose.yaml
y ejecutamos el siguiente comando:
docker-compose up -d
Nota: Si nos dice que no tenemos permisos ejecutamos el comando como administradores (con
sudo docker-compose up -d
)
Esto hará lo siguiente:
- Descargará las imágenes de Docker necesarias
- Creará una red interna para los contenedores
- Levantará los contenedores de base de datos y WordPress
- Los expondrá en los puertos indicados
Puedes verificar que los contenedores se hayan creado correctamente con:
// Sin permisos de administrador
docker-compose ps
// Con permisos de administrador
sudo docker-compose ps
Deberías ver ambos contenedores en estado Up
.
Instalar WordPress
Ahora solo queda finalizar la instalación de WordPress accediendo desde un navegador web a la URL donde publicamos nuestro contenedor de WordPress, por ejemplo:
Introducimos los datos de conexión a la base de datos que configuramos previamente(en el docker-compose.yaml
variables de entorno(environment
)) y listo. ¡Tendremos WordPress funcionando con Docker!
Personalizar contenedor de WordPress
Opcionalmente, podemos personalizar aún más nuestro stack Docker de WordPress:
- Instalar temas y plugins adicionales
- Configuraciones de rendimiento y securidad en wp-config.php
- Monitoreo de recursos y escalado automático
- Respaldos y control de versiones de la base de datos
Conclusión
En esta guía paso a paso pudimos ver con detalle el proceso para implementar WordPress con Docker de forma óptima, siguiendo las buenas prácticas. Entre los puntos clave:
- Instalación de requisitos previos como Docker y Docker Compose
- Creación del archivo docker-compose.yml para definir nuestros contenedores
- Levantamiento de los servicios con docker-compose up
- Instalación limpia de WordPress ya conectado a nuestra base de datos
- Personalización del contenedor con plugins, configuraciones y monitorización.
Con estas sencillas pero efectivas buenas prácticas disfrutarás de un WordPress dockerizado, portable, con alta disponibilidad y listo para escalar ante aumentos de tráfico.
Preguntas Frecuentes
Algunas ventajas son: portabilidad entre servidores, facilidad de despliegues, mejor rendimiento y escalabilidad horizontal de forma sencilla agregando contenedores.
Sí, Docker y Docker Compose funcionan en Linux, Windows y macOS; por lo que nuestro stack WordPress funcionará en cualquier ambiente compatible con Docker.
No, los volúmenes de Docker nos permiten persistir las bases de datos y archivos de WordPress de forma externa a los contenedores. Así podemos eliminarlos y recrearlos preservando los datos.
No, gracias a Docker Compose podemos definir múltiples contenedores WordPress idénticos de forma simple. Detrás de un balanceador de carga horizontal escalar es muy sencillo agregando más contenedores al pool.
Idealmente debemos crear una copia de seguridad de la base de datos y archivos, para luego restaurarlos sobre un WordPress dockerizado nuevo siguiendo esta guía. Otra opción es intentar dockerizar directamente el entorno actual.