Seguimos hablando de containers, en este caso, de la herramienta Docker Compose, que nos permitirá definir y ejecutar múltiples aplicaciones utilizando contenedores de software.

Con Compose utilizaremos ficheros en formato YAML, que nos servirán para definir la configuración de la aplicación en cuestión. De esta manera podemos, con un solo comando, crear e iniciar los servicios configurados en estos ficheros.

Su forma de uso es la siguiente:

Definir el entorno de las aplicaciones con Dockerfile (del que hablamos en el artículo anterior), para que así pueda reproducirse en cualquier lugar. Establecer los servicios que componen las aplicación en un fichero docker-compose.yml, para que se pueda utilizar en un entorno aislado. Ejecutar la herramienta docker-compose , para así iniciar la aplicación.

En el fichero YML podemos definir, entre otras cosas, la imagen o imágenes que queremos utilizar, la exposición de puertos o los volúmenes (De todo estos ya hemos hablando también antes).

Un ejemplo:

version: '3' services: web: build: . ports: - "8088:8080" volumes: - .:/code - logvolume01:/var/log links: - tomcat tomcat: image: tomcat volumes: logvolume01: {}

Podemos ver, por ejemplo, la versión que vamos a utilizar de «DockerCompose«, la exposición de puertos, las imágenes que vamos a llamar, que en este caso se trata de «Tomcat«, los volúmenes, etcétera.

En este aspecto podemos consultar la documentación oficial de referencia.

Ejemplo de funcionamiento

Yo sabéis que la mejor manera de decir es hacer, por lo que vamos a ver un ejemplo de uso. La idea es crear un proyecto de WordPress utilizando dos contenedores, uno de ellos para el propio servidor web y el otro para la base de datos, con MariaDB.

Antes de nada, continuando con el resto de artículos de la serie (recordemos que utilizamos como sistema operativo anfitrión a GNU Linux con Centos 7), vamos a instalar el paquete necesario para trabajar:

#Debemos tener instalado previamente el repositorio de Docker CE sudo yum install docker-compose

En los mares de Internet hay cantidad de imágenes ya predefinidias casi para cualquier cosa. Así que utilizaremos las imágenes oficiales de WordPress y MariaDB, ambos proyectos ubicados en Dockerhub.

Nos iremos a la consola de comandos. Desde allí creamos un fichero llamado ‘docker-compose.yml’ con la siguiente información:

wordpress: image: wordpress links: - mariadb:mysql environment: - WORDPRESS_DB_PASSWORD=contrasea ports: - "80:80" volumes: - ./code:/code - ./html:/var/www/html mariadb: image: mariadb environment: - MYSQL_ROOT_PASSWORD=contrasea - MYSQL_DATABASE=wordpress volumes: - ./database:/var/lib/mysql

En el fichero indicamos tanto los datos para el contenedor de ‘WordPress‘ como para el de la base de datos ‘MariaDB‘; además definimos los volúmenes y la exposición de puertos, temas que ya hemos tratado en capítulos anteriores. También indicamos la contraseña de la base de datos y su nombre.

Una vez hecho esto podemos crear los contenedores utilizando el siguiente comando:

docker-compose up -d

Para que pueda montar los contenedores debemos estar en la misma ubicación que el fichero YML.

Al finalizar el proceso, si todo ha ido bien, veremos el siguiente mensaje:

Creating docker_mariadb_1 ... Creating docker_mariadb_1 ... done Creating docker_wordpress_1 ... Creating docker_wordpress_1 ... done

Al terminar el proceso ya podemos obtener información sobre los contenedores recién creados:

docker ps -a

Con el resultado:

[[email protected] Docker]$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81b612f8b68b wordpress "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp docker_wordpress_1 07bf0c86b179 mariadb "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp docker_mariadb_1

Ahora sólo tenemos que ir a la dirección IP del host anfitrión en nuestro navegador, más el puerto que hayamos configurado, que en el ejemplo ha sido el 80.

Los pasos a seguir son los habituales de una instalación de WordPress. Una vez finalizados los pasos ya tendremos nuestra web montada y funcionando:

Las ventajas de utilizar contenedores son muchas. Por ejemplo, podemos lanzar decenas de contenedores de este popular CMS, cada uno de ellos exponiendo un puerto diferente.

Espero que el artículo haya sido de vuestro interés. No olvides comentar si tienes alguna duda o simplemente te ha parecido interesante. En el siguiente artículo hablaré de Kubernetes, que nos ayudará a automatizar el despliegue de contenedores. ¡Estad atentos! ^.^

Os indico las fuentes consultadas:

Docker.com – Install Docker Compose

0 0 vote Article Rating

Me gusta esto: Me gusta Cargando...