Para utilizar Docker compose, creamos un directorio y
creamos un fichero con el nombre docker-compose.yml que es donde introducimos
la receta de lo que debe realizar.
$ mkdir composewp
$ cd composewp/
composewp $ nano docker-compose.yml
En nuestro caso nuestro fichero quedaría de esta forma:
wp:
image: wordpress
links:
- mysql:mysql
ports:
- "80"
mysql:
image: mysql
environment:
-
MYSQL_ROOT_PASSWORD=miclaverootmysql
La receta es muy sencilla,
su funcionamiento sería similar al ejemplo del apartado anterior, estamos
creando un contenedor en base a la imagen de wordpress donde le especificamos
que esté vinculado al contenedor mysql que definimos más adelante, podemos
comprobar que no exponemos ningún puerto del contenedor mysql y definimos la
variable de entorno que corresponde a la contraseña del usuario root del
servicio mysql. Vamos a ver si todo esto funciona. Primero simplemente vamos a
ejecutar la composición mediante el parámetro up y el parámetro -d que
significa que se debe ejecutar como servicio.
$
docker-compose up -d
Creating
composewp_mysql_1
Creating composewp_wp_1
Vemos que ha creado dos contenedores correctamente, ahora mediante
el parámetro ps vamos a ver si están en ejecución.
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
composewp_mysql_1 /entrypoint.sh mysqld Up 3306/tcp
composewp_wp_1 /entrypoint.sh apache2-for ... Up
0.0.0.0:32768->80/tcp
Como podemos comprobar, ha iniciado correctamente los dos
contenedores, no obstante vamos a ver que nos dice el demonio docker mediante
el comando docker ps.
$
docker ps
CONTAINER
ID IMAGE COMMAND CREATED STATUS PORTS NAMES
77061ae8c289 wordpress "/entrypoint.sh
apach" 18 seconds ago Up 16 seconds 0.0.0.0:32768->80/tcp composewp_wp_1
c22cd4fa76d8 mysql "/entrypoint.sh mysql" 18 seconds ago Up 17 seconds 3306/tcp composewp_mysql_1
Según esto, todo parece funcionar correctamente, aún así nos
vamos a ir a nuestro navegador a comprobar si realmente se ha iniciado. Como me
indica que se ha expuesto el puerto 80 de wordpress al puerto 32768 del
anfitrión, ése será el puerto que debo comprobar. Y como podemos ver en la
figura, todo funciona perfectamente.
Fuente: Elaboración
propia
Ahora vamos a realizar otra prueba con docker compose, vamos
a intentar manejar 3 servidores wordpress vinculados al mismo servidor mysql,
lo cual resulta francamente sencillo con docker compose, mediante el parámetro
scale, le especificamos cual de los contenedores queremos escalar y en qué
cantidad.
$
docker-compose scale wp=3
Creating
and starting 2 ... done
Creating and starting 3 ... done
En nuestro ejemplo le
hemos dicho que queremos 3 contenedores funcionando de wordpress y como ya
teníamos uno en ejecución, nos ha ejecutado 2 más, ahora vamos a comprobar que
todo funciona perfectamente mediante el parámetro ps.
$
docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
composewp_mysql_1 /entrypoint.sh mysqld Up 3306/tcp
composewp_wp_1 /entrypoint.sh apache2-for ... Up 0.0.0.0:32768->80/tcp
composewp_wp_2 /entrypoint.sh apache2-for ... Up 0.0.0.0:32769->80/tcp
composewp_wp_3 /entrypoint.sh apache2-for ... Up 0.0.0.0:32770->80/tcp
Y podemos ver como tenemos funcionando los 3 contenedores en
3 puertos distintos.
No hay comentarios:
Publicar un comentario