# Cómo instalar WordPress en contenedores Docker

Descubre cómo realizar una instalación de WordPress en contenedores [Docker](https://www.ionos.es/digitalguide/servidores/know-how/que-es-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.

## Requisitos

Para que WordPress funcione correctamente en contenedores Docker, necesitas una [distribución Linux](https://www.ionos.es/digitalguide/servidores/configuracion/distribuciones-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](https://www.ionos.es/digitalguide/servidores/know-how/ubuntu-un-sistema-para-todos-basado-en-linux/) 22.04 LTS o una nueva versión
- [Debian 12](https://www.ionos.es/digitalguide/servidores/know-how/debian-el-software-universal-para-sistemas-operativos/) o una versión más reciente
- Una versión actual de Red Hat Enterprise Linux (RHEL) o [AlmaLinux](https://www.ionos.es/digitalguide/servidores/configuracion/almalinux-que-ofrece-la-nueva-distribucion-de-linux/)

Además, debe estar [instalado Docker](https://www.ionos.es/digitalguide/servidores/configuracion/tutorial-docker-instalacion-y-primeros-pasos/) 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](https://www.ionos.es/digitalguide/servidores/configuracion/docker-compose-tutorial/) y Docker. Para configuraciones más amplias o escalables, también deberías familiarizarte con [Kubernetes](https://www.ionos.es/digitalguide/servidores/know-how/que-es-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](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/mariadb-vs-mysql/), ya que MariaDB es compatible con MySQL.

#### MySQL

Inicia el contenedor con el comando:

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

#### MariaDB

Inicia el contenedor con el comando:

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

Nota Asegúrate de utilizar una [contraseña segura](https://www.ionos.es/digitalguide/servidores/seguridad/la-contrasena-una-clave-para-proteger-tu-informacion/) 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:

```none
docker exec -it my-db mysql -u root -p
```

Crea una base de datos:

```none
CREATE DATABASE wordpress-db;
```

#### MariaDB

Conéctate a tu contenedor de base de datos recién creado con el siguiente comando:

```none
docker exec -it my-db mariadb -u root -p
```

Crea una base de datos:

```none
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](https://www.ionos.es/digitalguide/servidores/seguridad/que-es-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:

```none
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:

```none
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:

```bash
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
```

Aquí, 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](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/que-es-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://&lt;ip-del-servidor&gt;
- http://example.com

Accede a esa URL en el navegador, selecciona el idioma de instalación y haz clic en **Continue (Continuar)**.

[![Imagen: Captura de pantalla de la selección de idioma en Wordpress](https://www.ionos.es/digitalguide/fileadmin/_processed_/f/7/csm_wp-docker-sprachauswahl_8c536f8b31.webp "Captura de pantalla de la selección de idioma en Wordpress")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-sprachauswahl.png) Ahora puedes seleccionar el idioma de instalación desde tu navegador. 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.

[![Imagen: Captura de pantalla del aviso de instalación en Wordpress](https://www.ionos.es/digitalguide/fileadmin/_processed_/d/8/csm_wp-docker-hinweis_281c385036.webp "Captura de pantalla del aviso de instalación en Wordpress")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-hinweis.png) El aviso de instalación de WordPress te informa sobre el siguiente paso del proceso de configuració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](https://www.ionos.es/digitalguide/fileadmin/_processed_/8/3/csm_wp-docker-db-informationen_2cbe26313e.webp "Captura de pantalla de la conexión a la base de datos de Wordpress")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-db-informationen.png) Introduce la información solicitada sobre tu base de datos. 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.

[![Imagen: Captura de pantalla de la instalación de WordPress: información sobre la página web de WordPress](https://www.ionos.es/digitalguide/fileadmin/_processed_/c/a/csm_wp-docker-seiteninformationen_3240b49267.webp "Captura de pantalla de la instalación de WordPress: información sobre la página web de WordPress")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-seiteninformationen.png) Introduce los datos requeridos 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 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.

[![Imagen: Captura de pantalla de la instalación completada](https://www.ionos.es/digitalguide/fileadmin/_processed_/2/7/csm_wp-docker-erfolg_4cfa7b77b0.webp "Captura de pantalla de la instalación completada")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-erfolg.png) El mensaje de éxito indica que la instalación se ha completado correctamente. 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](https://www.ionos.es/digitalguide/servidores/know-how/docker-compose-y-swarm-gestion-multicontenedor/)” 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:

```none
sudo mkdir wordpress 
cd wordpress
```

Crea un archivo YAML llamado docker-compose.yml con el siguiente comando:

```none
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:

```none
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:

```none
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:

```none
sudo docker-compose up -d
```

Con este comando puedes verificar si los contenedores se han creado:

```none
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](https://www.ionos.es/digitalguide/servidores/know-how/cluster-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:

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

Esto garantiza una implementación de WordPress a prueba de fallos y escalable con [balanceo de carga](https://www.ionos.es/digitalguide/servidores/know-how/balanceo-de-carga-conoce-a-fondo-sus-ventajas/) o load balancing, actualizaciones automáticas y soporte de conmutación por error.


This is a markdown version of: [https://www.ionos.es/digitalguide/servidores/know-how/wordpress-en-docker/](https://www.ionos.es/digitalguide/servidores/know-how/wordpress-en-docker/) for AI/LLM consumption.