Descubre cómo realizar una in­s­ta­la­ción de WordPress en co­n­te­ne­do­res Docker, tanto de forma manual como con Docker Compose. Para de­sa­rro­lla­do­res de WordPress, esta opción es es­pe­cia­l­me­n­te útil. Docker te permite probar múltiples co­n­fi­gu­ra­cio­nes de WordPress y poner en marcha una nueva in­s­ta­la­ción con solo unos pocos comandos.

Hosting para WordPress ge­s­tio­na­do
Crea tu página con IA, nosotros hacemos el resto
  • Creación fácil y rápida gracias a la IA integrada
  • To­ta­l­me­n­te pe­r­so­na­li­za­ble con pla­n­ti­llas y plugins
  • Ac­tua­li­za­ción sin co­m­pli­ca­cio­nes y menos ad­mi­ni­s­tra­ción

Re­qui­si­tos

Para que WordPress funcione co­rre­c­ta­me­n­te en co­n­te­ne­do­res Docker, necesitas una di­s­tri­bu­ción Linux ac­tua­li­za­da y con soporte. Versiones an­te­rio­res como CentOS 7 o Ubuntu 14.04 están obsoletas y deberían re­em­pla­zar­se por al­te­r­na­ti­vas modernas. Se re­co­mie­n­dan:

  • 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 En­te­r­pri­se Linux (RHEL) o AlmaLinux

Además, debe estar instalado Docker y listo para su uso. La versión mínima re­co­me­n­da­da es Docker 20.10 o superior para apro­ve­char las últimas mejoras en seguridad y re­n­di­mie­n­to. Si deseas usar Docker Compose, asegúrate de tener al menos la versión 2.x, ya que las versiones an­te­rio­res han dejado de ac­tua­li­zar­se.

Es útil tener co­no­ci­mie­n­tos básicos del uso de la línea de comandos, así como co­no­ci­mie­n­tos sobre cómo utilizar Docker Compose y Docker. Para co­n­fi­gu­ra­cio­nes más amplias o es­ca­la­bles, también deberías fa­mi­lia­ri­zar­te con Ku­be­r­ne­tes para orquestar co­n­te­ne­do­res a nivel pro­fe­sio­nal.

Ejecutar WordPress en co­n­te­ne­do­res Docker

Una in­s­ta­la­ción de WordPress requiere tres co­m­po­ne­n­tes:

  • El software de WordPress
  • Una base de datos MySQL o MariaDB
  • Los pasos finales de in­s­ta­la­ción a través del navegador

En los ejemplos si­guie­n­tes, WordPress y MySQL/MariaDB se ejecutan en co­n­te­ne­do­res separados pero enlazados. El co­n­te­ne­dor con WordPress se vincula a un puerto del host para que puedas acceder a él desde tu navegador.

Ejecutar un co­n­te­ne­dor MySQL/MariaDB

Una vez iniciado Docker, el primer paso es co­n­fi­gu­rar la base de datos. Para ello, primero ejecuta un co­n­te­ne­dor llamado my-db. Puedes usar tanto MySQL como MariaDB, ya que MariaDB es co­m­pa­ti­ble con MySQL.

MySQL

Inicia el co­n­te­ne­dor con el comando:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mysql:latest

MariaDB

Inicia el co­n­te­ne­dor con el comando:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mariadb:latest
Nota

Asegúrate de utilizar una co­n­tra­se­ña segura para tu base de datos. Guardar co­n­tra­se­ñas como variables de entorno puede suponer un riesgo de seguridad. Es pre­fe­ri­ble utilizar un Docker Secret o un archivo de co­n­fi­gu­ra­ción protegido.

Crear la base de datos

Una vez que hayas creado tu co­n­te­ne­dor, debes crear una base de datos que uti­li­za­rás para tu in­s­ta­la­ción de WordPress.

MySQL

Conéctate a tu co­n­te­ne­dor 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 co­n­te­ne­dor 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 co­n­te­ne­dor de WordPress

Ahora ejecuta un co­n­te­ne­dor con la imagen oficial de WordPress, asignado al puerto 8080 y enlazado con la base de datos.

Dos acla­ra­cio­nes:

  • Si usas un firewall, puede que tengas que permitir el acceso al puerto 8080.
  • Si ya tienes otro servicio eje­cu­tá­n­do­se en el puerto 8080, puedes elegir otro puerto en el host.

El comando varía li­ge­ra­me­n­te de­pe­n­die­n­do de si está uti­li­za­n­do MySQL o MariaDB:

MySQL

Inicia un co­n­te­ne­dor 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 co­n­te­ne­dor 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 so­bre­s­cri­bir los valores pre­de­te­r­mi­na­dos, in­clu­ye­n­do:

  • -e WORDPRESS_DB_HOST=[hostname]: por defecto, se utiliza la dirección IP y el puerto del co­n­te­ne­dor 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 co­n­te­ne­dor MySQL/MariaDB enlazado.
  • -e WORDPRESS_DB_NAME=[name]: el valor pre­de­te­r­mi­na­do es “wordpress”.

Para una mayor seguridad, puede ser útil no ejecutar los co­n­te­ne­do­res 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
bash

Aquí, tus co­n­te­ne­do­res están más aislados de otros co­n­te­ne­do­res, lo que reduce el riesgo de co­ne­xio­nes no deseadas. Además, las reglas de red pueden co­n­fi­gu­rar­se con más detalle, por ejemplo, mediante reglas es­pe­cia­les de co­r­ta­fue­gos o el uso de un proxy inverso.

Finalizar la in­s­ta­la­ción desde el navegador

Para completar los últimos pasos de la in­s­ta­la­ción, debes acceder al co­n­te­ne­dor de WordPress a través de un navegador.

En el ejemplo anterior, hemos asignado el puerto 8080 del host al puerto 80 (We­b­se­r­vi­ces) del co­n­te­ne­dor. De este modo, puedes acceder al co­n­te­ne­dor desde un navegador uti­li­za­n­do la dirección IP o la URL del servidor:

  • http://<ip-del-servidor>
  • http://example.com

Accede a esa URL en el navegador, se­le­c­cio­na el idioma de in­s­ta­la­ción y haz clic en Continue (Continuar).

Imagen: Captura de pantalla de la selección de idioma en Wordpress
Ahora puedes se­le­c­cio­nar el idioma de in­s­ta­la­ción desde tu navegador.

En la siguiente página recibirás una in­di­ca­ción que te preparará para la in­s­ta­la­ción adicional. Haz clic en el botón “Let’s go!” para continuar.

Imagen: Captura de pantalla del aviso de instalación en Wordpress
El aviso de in­s­ta­la­ción de WordPress te informa sobre el siguiente paso del proceso de co­n­fi­gu­ra­ción.

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

Imagen: Captura de pantalla de la conexión a la base de datos de Wordpress
Introduce la in­fo­r­ma­ción so­li­ci­ta­da sobre tu base de datos.

Ten en cuenta que el usuario pre­de­te­r­mi­na­do, salvo que indiques lo contrario, es “root”. Introduce aquí el nombre de la base de datos que has creado y la co­n­tra­se­ña que hayas elegido. Al hacer clic en “Submit” (Enviar) co­n­ti­nua­rás con el proceso de in­s­ta­la­ción.

Imagen: Captura de pantalla de la instalación de WordPress: información sobre la página web de WordPress
Introduce los datos re­que­ri­dos para tu página web de WordPress.
  • 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 pri­vi­le­gios ad­mi­ni­s­tra­ti­vos. Consejo: por seguridad, evita usar “Admin” o el nombre/URL de tu página como nombre de usuario.
  • Co­n­tra­se­ña: anota esta co­n­tra­se­ña antes de continuar.
  • Tu correo ele­c­tró­ni­co: dirección de correo ele­c­tró­ni­co asociada al usuario ad­mi­ni­s­tra­dor principal.

Haz clic en el botón Install WordPress (Instalar WordPress) para finalizar la in­s­ta­la­ción.

Imagen: Captura de pantalla de la instalación completada
El mensaje de éxito indica que la in­s­ta­la­ción se ha co­m­ple­ta­do co­rre­c­ta­me­n­te.

Si la in­s­ta­la­ción se ha llevado a cabo con éxito, recibirás un mensaje de co­n­fi­r­ma­ció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 in­fo­r­ma­ción sobre la in­s­ta­la­ción y el uso de Docker Compose en nuestro artículo “Docker Compose y Docker Swarm: or­que­s­ta­ción de co­n­te­ne­do­res Docker” para más in­fo­r­ma­ción. Bá­si­ca­me­n­te, esta he­rra­mie­n­ta te permite definir todos los servicios ne­ce­sa­rios en un solo archivo y arra­n­car­los de forma conjunta.

Crear el archivo YAML

Primero, crea un di­re­c­to­rio 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 li­ge­ra­me­n­te de­pe­n­die­n­do 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 co­n­te­ne­do­res

A co­n­ti­nua­ción, usa Docker Compose para iniciar estos co­n­te­ne­do­res con el siguiente comando:

sudo docker-compose up -d

Con este comando puedes verificar si los co­n­te­ne­do­res se han creado:

sudo docker-compose ps

Para completar la in­s­ta­la­ción, visita el co­n­te­ne­dor de WordPress en un navegador. Utiliza la dirección IP o la URL del servidor:

  • http://192.168.0.1
  • http://example.com

Ku­be­r­ne­tes para de­s­plie­gues es­ca­la­bles de WordPress

Para co­n­fi­gu­ra­cio­nes más grandes y entornos de pro­du­c­ción, puedes utilizar Ku­be­r­ne­tes (K8s). Con Ku­be­r­ne­tes, los co­n­te­ne­do­res de WordPress pueden or­que­s­tar­se y ge­s­tio­nar­se au­to­má­ti­ca­me­n­te a través de varios nodos. El uso de un clúster de Ku­be­r­ne­tes ofrece ventajas como escalado au­to­má­ti­co, me­ca­ni­s­mos de au­to­rre­cu­pe­ra­ción (self-healing) y gestión ce­n­tra­li­za­da de recursos. Una forma de im­ple­me­n­ta­ción es mediante Helm, un gestor de paquetes para Ku­be­r­ne­tes:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancer
bash

Esto garantiza una im­ple­me­n­ta­ción de WordPress a prueba de fallos y escalable con balanceo de carga o load balancing, ac­tua­li­za­cio­nes au­to­má­ti­cas y soporte de co­n­mu­ta­ción por error.

New call-to-action
Ir al menú principal