Cómo instalar WordPress en contenedores Docker
Descubre cómo realizar una instalación de WordPress en contenedores Docker, tanto de forma manual como con Docker Compose. Para desarrolladores de WordPress, esta opción es especialmente útil. Docker te permite probar múltiples configuraciones de WordPress y poner en marcha una nueva instalación con solo unos pocos comandos.
- Creación y personalización de tu página asistida por la IA
- 3 veces más rápido: SSD, caché y más
- Análisis diarios, protección DDoS y disponibilidad del 99,98 %
Requisitos
Para que WordPress funcione correctamente en contenedores Docker, necesitas una distribución Linux actualizada y con soporte. Versiones anteriores como CentOS 7 o Ubuntu 14.04 están obsoletas y deberían reemplazarse por alternativas modernas. Se recomiendan:
- Ubuntu 22.04 LTS o una nueva versión
- Debian 12 o una versión más reciente
- Una versión actual de Red Hat Enterprise Linux (RHEL) o AlmaLinux
Además, debe estar instalado Docker y listo para su uso. La versión mínima recomendada es Docker 20.10 o superior para aprovechar las últimas mejoras en seguridad y rendimiento. Si deseas usar Docker Compose, asegúrate de tener al menos la versión 2.x, ya que las versiones anteriores han dejado de actualizarse.
Es útil tener conocimientos básicos del uso de la línea de comandos, así como conocimientos sobre cómo utilizar Docker Compose y Docker. Para configuraciones más amplias o escalables, también deberías familiarizarte con Kubernetes para orquestar contenedores a nivel profesional.
Ejecutar WordPress en contenedores Docker
Una instalación de WordPress requiere tres componentes:
- El software de WordPress
- Una base de datos MySQL o MariaDB
- Los pasos finales de instalación a través del navegador
En los ejemplos siguientes, WordPress y MySQL/MariaDB se ejecutan en contenedores separados pero enlazados. El contenedor con WordPress se vincula a un puerto del host para que puedas acceder a él desde tu navegador.
Ejecutar un contenedor MySQL/MariaDB
Una vez iniciado Docker, el primer paso es configurar la base de datos. Para ello, primero ejecuta un contenedor llamado my-db
. Puedes usar tanto MySQL como MariaDB, ya que MariaDB es compatible con MySQL.
MySQL
Inicia el contenedor con el comando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mysql:latest
MariaDB
Inicia el contenedor con el comando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mariadb:latest
Asegúrate de utilizar una contraseña segura para tu base de datos. Guardar contraseñas como variables de entorno puede suponer un riesgo de seguridad. Es preferible utilizar un Docker Secret o un archivo de configuración protegido.
Crear la base de datos
Una vez que hayas creado tu contenedor, debes crear una base de datos que utilizarás para tu instalación de WordPress.
MySQL
Conéctate a tu contenedor de base de datos recién creado con el siguiente comando:
docker exec -it my-db mysql -u root -p
Crea una base de datos:
CREATE DATABASE wordpress-db;
MariaDB
Conéctate a tu contenedor de base de datos recién creado con el siguiente comando:
docker exec -it my-db mariadb -u root -p
Crea una base de datos:
CREATE DATABASE wordpress-db;
Ejecutar un contenedor de WordPress
Ahora ejecuta un contenedor con la imagen oficial de WordPress, asignado al puerto 8080 y enlazado con la base de datos.
Dos aclaraciones:
- Si usas un firewall, puede que tengas que permitir el acceso al puerto 8080.
- Si ya tienes otro servicio ejecutándose en el puerto 8080, puedes elegir otro puerto en el host.
El comando varía ligeramente dependiendo de si está utilizando MySQL o MariaDB:
MySQL
Inicia un contenedor de WordPress con el siguiente comando:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latest
MariaDB
Inicia un contenedor de WordPress con el siguiente comando:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latest
Existen muchas otras variables de entorno que puedes agregar a este comando si deseas sobrescribir los valores predeterminados, incluyendo:
-e WORDPRESS_DB_HOST=[hostname]
: por defecto, se utiliza la dirección IP y el puerto del contenedor MySQL/MariaDB enlazado. Esta variable permite conectar con una base de datos MySQL/MariaDB alojada en otro servidor.-e WORDPRESS_DB_USER=[username]
: el valor por defecto es root.-e WORDPRESS_DB_PASSWORD=[password]
: por defecto, se utiliza la variable de entorno MYSQL_ROOT_PASSWORD del contenedor MySQL/MariaDB enlazado.-e WORDPRESS_DB_NAME=[name]
: el valor predeterminado es “wordpress”.
Para una mayor seguridad, puede ser útil no ejecutar los contenedores en la red estándar de puente. En su lugar, se puede utilizar una red propia:
docker network create my-wp-network
docker run --name my-db --network my-wp-network -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mysql:latest
docker run --name my-wordpress --network my-wp-network -p 8080:80 -d wordpress:latest
bashAquí, tus contenedores están más aislados de otros contenedores, lo que reduce el riesgo de conexiones no deseadas. Además, las reglas de red pueden configurarse con más detalle, por ejemplo, mediante reglas especiales de cortafuegos o el uso de un proxy inverso.
Finalizar la instalación desde el navegador
Para completar los últimos pasos de la instalación, debes acceder al contenedor de WordPress a través de un navegador.
En el ejemplo anterior, hemos asignado el puerto 8080 del host al puerto 80 (Webservices) del contenedor. De este modo, puedes acceder al contenedor desde un navegador utilizando la dirección IP o la URL del servidor:
- http://<ip-del-servidor>
- http://example.com
Accede a esa URL en el navegador, selecciona el idioma de instalación y haz clic en Continue (Continuar).

En la siguiente página recibirás una indicación que te preparará para la instalación adicional. Haz clic en el botón “Let’s go!” para continuar.

Introduce los datos de tu base de datos para generar el archivo wp-config.php
.

Ten en cuenta que el usuario predeterminado, salvo que indiques lo contrario, es “root”. Introduce aquí el nombre de la base de datos que has creado y la contraseña que hayas elegido. Al hacer clic en “Submit” (Enviar) continuarás con el proceso de instalación.

- Título de la página web: introduce el título de tu página web.
- Nombre de usuario: este será el nombre de usuario principal con privilegios administrativos. Consejo: por seguridad, evita usar “Admin” o el nombre/URL de tu página como nombre de usuario.
- Contraseña: anota esta contraseña antes de continuar.
- Tu correo electrónico: dirección de correo electrónico asociada al usuario administrador principal.
Haz clic en el botón Install WordPress (Instalar WordPress) para finalizar la instalación.

Si la instalación se ha llevado a cabo con éxito, recibirás un mensaje de confirmación y ya podrás proceder a iniciar sesión en WordPress.
Ejecutar WordPress con Docker Compose
El uso de Docker Compose para ejecutar WordPress también es una opción. Puedes encontrar información sobre la instalación y el uso de Docker Compose en nuestro artículo “Docker Compose y Docker Swarm: orquestación de contenedores Docker” para más información. Básicamente, esta herramienta te permite definir todos los servicios necesarios en un solo archivo y arrancarlos de forma conjunta.
Crear el archivo YAML
Primero, crea un directorio para tu proyecto y accede a él:
sudo mkdir wordpress
cd wordpress
Crea un archivo YAML llamado docker-compose.yml con el siguiente comando:
sudo nano docker-compose.yml
El contenido del archivo varía ligeramente dependiendo de si usas MySQL o MariaDB.
MySQL
Agrega lo siguiente al archivo:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mysql
ports:
- 8080:80
wordpress_db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: CONTRASEÑA_SEGURA
Guarda y cierra el archivo.
MariaDB
Agrega lo siguiente al archivo:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mariadb
ports:
- 8080:80
wordpress_db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: CONTRASEÑA_SEGURA
Guarda y cierra el archivo.
Iniciar los contenedores
A continuación, usa Docker Compose para iniciar estos contenedores con el siguiente comando:
sudo docker-compose up -d
Con este comando puedes verificar si los contenedores se han creado:
sudo docker-compose ps
Para completar la instalación, visita el contenedor de WordPress en un navegador. Utiliza la dirección IP o la URL del servidor:
- http://192.168.0.1
- http://example.com
Kubernetes para despliegues escalables de WordPress
Para configuraciones más grandes y entornos de producción, puedes utilizar Kubernetes (K8s). Con Kubernetes, los contenedores de WordPress pueden orquestarse y gestionarse automáticamente a través de varios nodos. El uso de un clúster de Kubernetes ofrece ventajas como escalado automático, mecanismos de autorrecuperación (self-healing) y gestión centralizada de recursos. Una forma de implementación es mediante Helm, un gestor de paquetes para Kubernetes:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancer
bashEsto garantiza una implementación de WordPress a prueba de fallos y escalable con balanceo de carga o load balancing, actualizaciones automáticas y soporte de conmutación por error.