Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Configuraci贸n de Docker para MongoDB

4/24
Recursos

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 鈥渓lenar鈥 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 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.

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

Aportes 10

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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!

馃憦