Sin duda Docker 🐋 es una gran herramienta que te ayuda a correr bases de datos sin tener que instalar drivers en tu computadora.
Introducción
¿Ya tomaste el Curso de NestJS: Programación Modular?
Instalación de Docker para este curso
Instalación de Platzi Store y presentación
Database
Configuración de Docker para MongoDB
Exploración de la base de datos con Mongo Compass
Instalando y conectando MongoDB Driver
Conexión como inyectable
Ejecutando un query
Usando variables de ambiente en Mongo
Mongoose
¿Qué es Mongoose? Instalación y configuración
Implementando Mongoose en Módulos
Conectando Mongo a los servicios
Create, update y delete
Pipe para mongoid
Agregando paginación
Agregando un filtro de rango para precios
Agregando indexadores
Relaciones en MongoDB
Relaciones uno a uno embebidas
Relaciones uno a uno referenciadas
Relaciones uno a muchos embebidas
Cómo tipar relaciones uno a muchos embebidas
Relaciones uno a muchos referenciadas
Manipulación de arrays en MongoDB
Próximos pasos
Continúa con el Curso de NestJS: Autenticación con Passport y JWT
Crea una cuenta o inicia sesión
¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera
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.
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.
Veamos cómo puedes emplear Docker para levantar una base de datos MongoDB.
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.
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
Entendamos qué es cada línea de este archivo:
version:
la versión de Docker a utilizar.services:
un mismo docker.compose.yml
podrá tener N cantidad de contenedores Docker que se relacionan entre sí. En este ejemplo, solo tendremos un contenedor llamado my-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 variables MONGO_INITDB_DATABASE
, MONGO_INITDB_ROOT_USERNAME
y MONGO_INITDB_ROOT_PASSWORD
para 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.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.
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.
# 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
Aportes 10
Preguntas 4
Sin duda Docker 🐋 es una gran herramienta que te ayuda a correr bases de datos sin tener que instalar drivers en tu computadora.
services.mongo.ports contains an invalid type, it should be an array
si tienes este error coloca el archivo docker-compose.yml
# 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
Hice un articulo de crear contenedores de DB en docker, espero que les sirva.
Crear contenedores de bases de Datos en Docker
Las variables de entorno como las tiene el profesor me daban error; las he cambiado a la siguiente forma y me funciona.
mongo:
image: mongo:4.4
environment:
- MONGO_INITDB_ROOT_USERNAME= root
- MONGO_INITDB_ROOT_PASSWORD= root
ports:
- 27017:27017
volumes:
- ./mongo_data:/data/db
yo use esta para probar y funciona
version: '3’
services:
db:
image: mongo
restart: always
ports:
- 27017:27017
environment:
MONGODB_DATABASE: test
Si tienen este error en ubuntu > failed to execute script docker-compose
Usen sudo antes de todos los comandos
<sudo docker-compose up -d mongo>
Para inicializar la configuracion de docker usar el comando:
docker app init myapp
Comando con la ultima version de docker
docker compose up -d
Docker listo!
👏
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.