Paso 1: Crear la red Docker
Primero, necesitamos crear una red Docker que permita que los contenedores se
comuniquen entre sí.
-docker network create --driver bridge my_red_upi
Paso 2: Levantar el contenedor MySQL
Ahora creamos el contenedor que ejecutará MySQL. Necesitamos especificar el nombre
de la base de datos, el usuario y la contraseña, además de enlazarlo a la red.
-docker run --name my_container_mysql --network my_red_upi -e
MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -d mysql:latest
Paso 3: Levantar los contenedores de WordPress
Ahora, levanta los contenedores de WordPress. Utilizaremos el puerto 80 del host para
acceder al sitio web.
docker run --name my_container_wordpress_uno --network my_red_upi -p 8081:80 -e
WORDPRESS_DB_HOST=my_container_mysql:3306 -e
WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=root -e
WORDPRESS_DB_PASSWORD=123456 -d wordpress:latest
docker run --name my_container_wordpress_dos --network my_red_upi -p 8082:80 -e
WORDPRESS_DB_HOST=my_container_mysql:3306 -e
WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=root -e
WORDPRESS_DB_PASSWORD=123456 -d wordpress:latest
Paso 4: Levantar el balanceador de carga
Para balancear la carga entre los dos contenedores de WordPress, usaremos Nginx como
balanceador de carga. Levantamos un contenedor con Nginx configurado para redirigir el
tráfico a ambos contenedores de WordPress.
- docker run --name my_balanceador_upi --network my_red_upi -p 8080:80 -d nginx
Paso 5 Configurar el balanceador de carga desde adentro
Paso 1: Entrar al contenedor del balanceador
Primero, accedemos al contenedor de Nginx para modificar su configuración.
--docker exec -it my_balanceador_upi bash
Paso 6: Instalar un editor de texto (nano)
Dentro del contenedor, instalamos nano para editar los archivos de configuración.
--apt update && apt install nano -y
Paso 7: Moverse a la carpeta de configuración de Nginx
Ahora, nos dirigimos a la carpeta donde Nginx guarda sus configuraciones.
--cd /etc/nginx/conf.d
--Verifica los archivos que existen con: ls
--Si ves un archivo llamado [Link], lo eliminamos para evitar conflictos: rm
[Link]
Paso 8: Crear la configuración del balanceador
Ahora, creamos un nuevo archivo de configuración llamado my_balanceador_upi.conf
nano my_balanceador_upi.conf
Dentro de este archivo, escribe lo siguiente:
upstream backend {
server my_container_wordpress_uno:80;
server my_container_wordpress_dos:80;
server {
listen 80;
location / {
proxy_pass [Link]
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off; # Evitar redirecciones incorrectas
}
Paso 9: Aplicar la nueva configuración
--Movemos la nueva configuración para que Nginx la use: mv
/etc/nginx/conf.d/my_balanceador_upi.conf /etc/nginx/conf.d/[Link]
--Verificamos que el archivo esté bien escrito: nginx -t
Paso 10: Reiniciar Nginx para aplicar los cambios:
--Ejecutamos el siguiente comando para que Nginx recargue la nueva configuración::
nginx -s reload
--Si algo falla, prueba reiniciar Nginx completamente: service nginx restart
-- reiniciamos el contenedor en docker -- docker restart my_balanceador_upi
Paso 10: configurar las ulr de los contenedores para que redireccionen a la correcta
por medio del balanceador
Entramos en el contenedor:
--docker exec -it my_container_wordpress_uno bash
Instalamos nano
--apt-get update
-- apt-get install nano -y
Editar el archivo [Link]
--nano /var/www/html/[Link]
Modificar el archivo:
Agrega las siguientes líneas al final del archivo [Link] (antes de la línea /* That's
all, stop editing! Happy blogging. */):
--define('WP_HOME', '[Link]
--define('WP_SITEURL', '[Link]
Control + x para guardar
docker network prune -f
docker rm -f $(docker ps -aq)