5 Ejemplos de Docker Compose

Docker permite a los desarrolladores empaquetar su aplicación junto con las dependencias en contenedores. Con Docker Compose podemos orquestar varios contenedores para trabajar juntos como una sola aplicación. Esto nos permite simplificar el proceso de implementación y facilitar la administración. En este artículo, exploraremos cinco ejemplos de Docker Compose que ilustran diferentes aspectos de la creación y administración de aplicaciones.
Crear un cluster de PostgreSQL
Docker Compose permite crear un clúster de bases de datos PostgreSQL. Para crear el clúster, abrimos un editor de texto y creamos un archivo llamado docker-compose.yaml con el siguiente contenido:
version: "3.9"
services:
db:
image: postgres
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: postgres
pgadmin:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: "[email protected]"
PGADMIN_DEFAULT_PASSWORD: "admin"
ports:
- "8000:80"
volumes:
db-data:
Este archivo define dos servicios: db y pgadmin. El servicio db utiliza la imagen `postgres` para crear una instancia de PostgreSQL. El volumen db-data se utiliza para persistir los datos. El servicio pgadmin, por otro lado, utiliza la imagen `dpage/pgadmin4` para proporcionar una interfaz gráfica para administrar la base de datos PostgreSQL. Esto nos permite conectarnos desde nuestro navegador a `localhost:8000` y utilizar el pgadmin para administrar la base de datos.
Desplegar una aplicación Spring Boot con MySQL
Docker Compose también puede ser utilizado para desplegar aplicaciones de Spring Boot con MySQL. El siguiente archivo yaml se utiliza para desplegar una aplicación de Spring Boot de ejemplo y una instancia de MySQL:
version: "3.9"
services:
database:
image: mysql
environment:
MYSQL_DATABASE: example
MYSQL_USER: example
MYSQL_PASSWORD: example
MYSQL_ROOT_PASSWORD: root
volumes:
- db-data:/var/lib/mysql
app:
build: .
ports:
- "8080:8080"
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://database/example?useSSL=false
SPRING_DATASOURCE_USERNAME: example
SPRING_DATASOURCE_PASSWORD: example
volumes:
db-data:
Aquí, definimos dos servicios: database y app. El servicio database utiliza la imagen `mysql` para crear una instancia de MySQL. El servicio app utiliza el archivo Dockerfile en la carpeta actual para construir la aplicación de Spring Boot. El servicio app está expuesto en el puerto 8080.
Orquestar múltiples servicios
Docker Compose no solo es útil para orquestar contenedores de bases de datos y aplicaciones, sino también para orquestar varios servicios que trabajan juntos. Por ejemplo, podemos orquestar un esquema de varios contenedores que incluye un servidor web, una base de datos y una aplicación de backend:
version: "3.9"
services:
webserver:
build: ./webserver
ports:
- "80:80"
backend:
build: ./backend
environment:
DATABASE_URL: jdbc:postgresql://database:5432/test
DATABASE_USERNAME: example
DATABASE_PASSWORD: example
database:
image: postgres
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: test
Este archivo define tres servicios: webserver, backend y database. El servicio webserver utiliza el archivo Dockerfile en la carpeta ./webserver para construir un servidor web. El servicio backend utiliza el archivo Dockerfile en la carpeta ./backend para construir la aplicación de backend. El servicio database utiliza la imagen `postgres` para crear una instancia de PostgreSQL.
Escalamiento automático
Docker Compose también proporciona escalabilidad automática para los contenedores. Por ejemplo, podemos escalar la instancia de Nginx a dos contenedores:
version: "3.9"
services:
nginx:
image: nginx
deploy:
replicas: 2
ports:
- "8080:80"
Aquí definimos el servicio nginx, que utiliza la imagen `nginx`. El parámetro deploy.replicas indica el número de contenedores del servicio a implementar. En este caso, especificamos dos replicas.
Conclusión
En este artículo, hemos explorado cinco ejemplos de Docker Compose que muestran cómo Compose puede usarse para orquestar múltiples contenedores, crear clusters de bases de datos, desplegar aplicaciones de Spring Boot con MySQL y escalar automáticamente los contenedores. Compose es una herramienta útil para simplificar el proceso de implementación y administración de contenedores en Docker.
Preguntas frecuentes
¿Qué es Docker Compose?
Docker Compose es una herramienta que nos permite orquestar múltiples contenedores en Docker y ejecutarlos como un solo servicio.
¿Para qué se utiliza Docker Compose?
Docker Compose se utiliza para simplificar el proceso de implementación y administración de contenedores en Docker. Permite orquestar varios contenedores para trabajar juntos como una sola aplicación.
¿Cómo se define un archivo Docker Compose?
Se define un archivo Docker Compose en formato YAML, que contiene una lista de servicios y sus dependencias.
¿Qué es un cluster de bases de datos?
Un cluster de bases de datos es un grupo de bases de datos que actúan como una sola entidad. Permite balancear la carga y garantizar la alta disponibilidad de los datos.
[nekopost slugs="como-ejecutar-el-modo-privilegiado-del-contenedor,por-que-docker-construye-no-mostrar-ningun-resultado-de-los-comandos,que-registro-de-docker-se-establece-como-el-valor-predeterminado,la-calabaza-de-docker-reduce-el-tamano-de-la-imagen,docker-ps-show-comando-completo,corrige-docker-sin-espacio-de-dispositivo-error-de-izquierda,aplicacion-de-dockerize-python,tutorial-de-docker-compose,agregue-sin-opcion-de-cache-docker-compose-build"]

Deja una respuesta