Este tutorial se le mostrará cómo ejecutar una instalación de WordPress en contenedores Docker mediante Docker Compose.
WordPress es el CMS (Sistema de gestión de contenido) más popular a nivel mundial, lo que lo convierte en una consideración de primera categoría al crear un nuevo sitio. Está construido sobre una base de datos MySQL con procesamiento PHP.
La configuración de una instalación local de WordPress implica varios pasos y puede llevar mucho tiempo. Por lo general, debe configurar un servidor web local, configurar el servidor para ejecutar código PHP y configurar una base de datos MySQL.
Sin embargo, la forma más sencilla de configurar un entorno de WordPress local es utilizar contenedores con Docker.
Si está comenzando con Docker y aún no lo ha instalado, le recomiendo comenzar con nuestro tutorial:Instalar Docker en Ubuntu:una guía paso a paso.
1. Instalar Docker Compose
Cuando se usa mucho Docker, administrar varios contenedores diferentes se vuelve engorroso. Docker Compose es una herramienta que puede definir e iniciar fácilmente aplicaciones de varios contenedores en Docker.
Con Compose, puede definir todos los servicios en un único archivo YAML y, con un solo comando, puede activar o desactivar todo.
En este tutorial, ejecutaremos dos contenedores (WordPress y MySQL) en un entorno contenedor aislado usando Docker Compose.
Ahora déjeme mostrarle cómo instalar la última versión de Docker Compose para ayudarlo a administrar aplicaciones de varios contenedores.
Primero, verifique la versión actual y, si es necesario, actualícela con el siguiente comando:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Luego aplique permisos ejecutables al binario:
sudo chmod +x /usr/local/bin/docker-compose
Finalmente, puede verificar que la instalación fue exitosa al verificar la versión:
docker-compose --version
docker-compose version 1.29.2, build 5becea4c
Para obtener más información sobre Docker Compose, puede consultar la documentación oficial.
2. Preparar directorio
Necesitas crear un nuevo directorio llamado wordpress
en /srv
para alojar los datos de WordPress. De esta forma, conseguimos una cierta persistencia de los datos.
sudo mkdir -p /srv/wordpress
cd /srv/wordpress/
Como sabe, los datos en los contenedores de Docker no son persistentes. Esto significa que pierde todos los datos cuando detiene el contenedor y lo vuelve a ejecutar; ya no habrá ningún dato dentro.
Por supuesto, esto se puede evitar agregando un volumen de Docker, como verá más adelante en este tutorial.
3. Crear el archivo YAML
En el reino de Docker Compose, todos los recursos necesarios para ejecutar un contenedor deben definirse en un archivo YAML llamado docker-compose.yaml
.
Docker Compose luego leerá dichos archivos y se comunicará con el demonio de Docker para crear, configurar o destruir los recursos definidos.
En nuestro caso, docker-compose.yaml
El archivo contendrá las definiciones de servicio para nuestra configuración dockerizada de WordPress.
Además, Docker Compose nos permite vincular estos servicios con redes y volúmenes compartidos.
Entonces, comencemos con la creación de un nuevo docker-compose.yaml
archivo dentro del /srv/wordpress
directorio con un editor de su elección. Rellénelo con esta configuración:
version: '3'
services:
mysql:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: my_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: wordpress_password
volumes:
- mysql_data:/var/lib/mysql
wordpress:
image: wordpress:latest
depends_on:
- mysql
ports:
- 8080:80
restart: always
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: wordpress_user
WORDPRESS_DB_PASSWORD: wordpress_password
volumes:
- ./wp-content:/var/www/html/wp-content
volumes:
mysql_data:
Un poco de explicación aquí:
- Definimos dos servicios –
mysql
ywordpress
, que se vinculan automáticamente entre sí. - Usan una imagen de Docker , que decidirá qué versión de MySQL y WordPress usar. En este caso, sus últimos versiones.
- Entorno MySQL :WordPress utilizará estas variables de entorno para conectarse al contenedor de MySQL.
- Entorno de WordPress :para que se ejecute un contenedor de WordPress, debe configurar los detalles de conectividad de la base de datos.
- La imagen de WordPress se basa en Apache, que se ejecuta en puerto
80
por defecto. Asigne el puerto Apache predeterminado al puerto8080
de la computadora local. - datos_mysql :Los datos que fluyen hacia esta base de datos se conservarán en un volumen con nombre
mysql_data
de modo que incluso cuando elimine el contenedor, los datos seguirán viviendo en su máquina y se podrán volver a montar dentro de un nuevo contenedor.
Además, los volumes
parámetro en wordpress
es lo que le dice a Docker que muestre el wp-content
directorio en el sistema de archivos local.
Así que ahora tenemos almacenamiento persistente para partes de nuestro sitio de WordPress, como wp-content
directorio. El wp-content
contiene todo el contenido proporcionado por el usuario. Básicamente, todo lo que puedes subir a tu sitio termina aquí.
Sin embargo, siempre que tenga tanto la base de datos como su wp-content
carpeta, siempre puede recuperar su sitio, incluso si todo lo demás se perdió.
4. Ejecute WordPress con Docker Compose
Ahora está listo para ejecutar el comando Docker para construir su entorno local. Asegúrate de estar todavía en wordpress
directorio. Ejecute el siguiente comando:
sudo docker-compose up -d
El comando comenzará a ejecutar secuencias de comandos, y debería ver aparecer varios mensajes de "Descargando" y "Esperando" en la terminal mientras Docker extrae las imágenes de MySQL y WordPress. Esto tardará un poco en ejecutarse.
Cuando vigile de cerca su sistema de archivos local, verá que /srv/wordpress/wp-content
la carpeta se creará y se completará con archivos y carpetas después de que se hayan extraído las imágenes de Docker.
La instalación de WordPress con un contenedor de MySQL y un contenedor de WordPress ha sido exitosa.
5. Acceda a su instalación de WordPress
Finalmente, podemos finalizar la instalación a través de la interfaz web de WordPress con nuestros contenedores en ejecución. En su navegador web, vaya a http://localhost:8080
o http://your_ip_address:8080
.
Es posible que deba averiguar su dirección IP mediante el comando ifconfig.
La página de selección de idioma le dará la bienvenida. Seleccione su idioma y haga clic en Continuar.
Complete la información necesaria en la siguiente pantalla y haga clic en "Instalar WordPress".
Finalmente, cuando se le solicite, haga clic en Login
.
La pantalla estándar de inicio de sesión de WordPress te saludará. Una vez que se haya autenticado con éxito, puede comenzar a usar WordPress.
Opciones adicionales de redacción de Docker
Primero, asegúrese de estar en /srv/wordpress
directorio.
Para ver el estado de una aplicación Docker, ejecute el siguiente comando:
sudo docker-compose ps
Puedes detener todos los contenedores en ejecución usando el siguiente comando:
sudo docker-compose stop
Para iniciar contenedores existentes que se crearon con docker-compose up
:
sudo docker-compose start
El comando que se muestra a continuación detendrá y eliminará contenedores y todas las redes:
sudo docker-compose down
Conclusión
Le presentamos el concepto detrás de Docker Compose, y ahora debería poder definir incluso aplicaciones simples de varios contenedores.
En este tutorial, utilizó Docker Compose para instalar un WordPress con Docker. Ahora tienes WordPress en funcionamiento.
Esperamos que haya disfrutado leyendo esta guía. ¡Feliz atraque!