Configuración y ejecución de MongoDB con Docker Compose
Clase 4 de 24 • Curso de NestJS: Persistencia de Datos con MongoDB
Contenido del curso
- 4

Configuración y ejecución de MongoDB con Docker Compose
08:51 - 5

Conexión a Base de Datos MongoDB con Mongo Compass
05:05 - 6

Instalación y conexión de MongoDB en Node con driver oficial
06:59 - 7

Inyección de Conexiones MongoDB en Servicios NestJS
06:57 - 8

Consultas a MongoDB con Nest.js: Implementación de Endpoints
04:46 - 9

Variables de Entorno para Configuración de MongoDB en Node.js
10:43
- 10

Instalación y Configuración de Mongoose con NestJS
07:52 - 11

Definición de Esquemas en Mongoose para eCommerce con NestJS
07:45 - 12

Operaciones CRUD con MongoDB y Node.js en un Servicio de Productos
09:29 - 13

Creación, actualización y eliminación de productos en MongoDB
10:12 - 14

Validación de MongoID con Pipes en NestJS
06:38 - 15

Paginación en MongoDB con DTOs y Validaciones en NestJS
11:13 - 16

Consultas Avanzadas con Rangos de Precios en MongoDB
07:30 - 17

Indexación en MongoDB: Cómo optimizar consultas rápidas
03:11
- 18

Relaciones embebidas en MongoDB: Manejo y ejemplos prácticos
07:55 - 19

Relaciones uno a uno referenciadas en MongoDB
12:20 - 20

Relaciones Uno a Muchos en MongoDB: Arrays Embebidos vs Referenciados
09:28 - 21
Tipado de Documentos Embebidos en NestJS con Mongoose
01:49 - 22

Relaciones Uno a Muchos Referenciadas en MongoDB
14:36 - 23

Manipulación de Arrays en E-commerce: Métodos y Endpoints
13:08
Tu productividad como desarrollador/a de software se incrementará gracias a Docker. No importa si eres desarrollador/a, backend o front-end. Hoy en día, trabajar con Docker es vital para ser un buen profesional del software.
Cuáles son los beneficios de Docker
Con Docker podrás utilizar la tecnología que quieras en simples pasos, sin preocuparte por instalarla en tu computadora. No tendrás que “llenar” tu ordenador con programas que tal vez solo necesitas por un rato.
Es así como Docker simplifica la instalación de un motor de base de datos, de un lenguaje de programación para hacer algunas pruebas o de un software en particular para un propósito dado.
Cómo trabajan Docker y MongoDB
Veamos cómo puedes emplear Docker para levantar una base de datos MongoDB.
1. Configuración Docker
Comienza creando un archivo al cual, por defecto, se lo denomina docker-compose.yml.
NOTA: Los archivos de Docker utilizan la extensión
.yml. Tal vez tengas que instalar una extensión en tu editor de código para visualizar estos archivos correctamente.
2. Configuración MongoDB con Docker
Agrégale el siguiente contenido al archivo que te permitirá levantar un contenedor de Docker con MongoDB en su interior.
# docker-compose.yml
version: '3'
services:
my-mongo:
image: mongo:4.4.4
environment:
- MONGO_INITDB_DATABASE=nestjs_mongo
- MONGO_INITDB_ROOT_USERNAME=mongo
- MONGO_INITDB_ROOT_PASSWORD=secret
ports:
- '27017:27017'
volumes:
- ./mongo_data:/data/db
Cómo leer cada línea del archivo
Entendamos qué es cada línea de este archivo:
version:la versión de Docker a utilizar.services:un mismodocker.compose.ymlpodrá tener N cantidad de contenedores Docker que se relacionan entre sí. En este ejemplo, solo tendremos un contenedor llamadomy-mongo.image:el nombre de la imagen base a utilizar para levantar el contenedor.environment:variables de entorno que el contenedor necesita. La imagen de Docker usada recibe por defecto las variablesMONGO_INITDB_DATABASE,MONGO_INITDB_ROOT_USERNAMEyMONGO_INITDB_ROOT_PASSWORDpara preconfigurar el usuario de la base de datos.ports:el puerto que el contenedor utilizará. <puerto_host>:<puerto_contenedor>. MongoDB usa por defecto el puerto 27017 y podremos acceder al mismo a través del puerto 27017 de la máquina local.volumes:Docker, al destruir un contenedor, no mantendrá los datos y se perderán. Usamos esta configuración para generar un directorio y persistir los datos en la computadora local.
3. Ejecutar contenedor
Es momento de levantar el contenedor con el simple comando docker-compose up -d. En pocos segundos podrás corroborar si el contenedor quedó levantado en tu computador con el comando docker ps. Debería estar ejecutándose, en el puerto 27017 una base de datos MongoDB.
4. Otros comandos útiles
Puedes detener el contenedor que está corriendo con el comando docker-compose down o actualizarlo con el comando docker-compose up -d --build en el caso de que hayas realizado modificaciones en el archivo docker-compose.yml.
Docker es todo un mundo que te recomiendo aprender y Platzi tiene un Curso de Docker para enseñarte cómo funciona.
Docker no es una tecnología exclusiva de DevOps, todo desarrollador de software debería saber trabajar con ella.
Contribución creada por: Kevin Fiorentino.
Código de ejemplo para configuración de Docker
# docker-compose.yml
version: '3.3'
services:
mongo:
image: mongo:4.4
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root
ports:
- 27017:27017
volumes:
- ./mongo_data:/data/db
# .gitignore
/mongo_data
docker-compose up -d mongo
docker-compose ps
docker-compose down