Cómo instalar MongoDB con Docker

MongoDB es una de las bases de datos NoSQL más populares del mundo, que ofrece flexibilidad, rendimiento y alta escalabilidad. MongoDB puede almacenar y gestionar datos estructurados y no estructurados, como documentos, gráficos, medios de comunicación y mucho más. MongoDB también admite funciones avanzadas, como indexación, agregación, replicación, fragmentación y transacciones.

Docker es una plataforma de software que permite crear, ejecutar y distribuir aplicaciones mediante contenedores. Un contenedor es una unidad de software aislada del entorno circundante, que contiene todo lo que una aplicación necesita para funcionar, como código, bibliotecas, dependencias y configuraciones. Con Docker, puede asegurarse de que sus aplicaciones se ejecuten sin problemas en cualquier lugar, sin preocuparse por la compatibilidad o las dependencias.

Instalar MongoDB con Docker es una forma fácil y rápida de crear una base de datos MongoDB en tu ordenador. No necesitas descargar o instalar MongoDB manualmente, ya que Docker se encargará de todos los procesos por ti. También puedes aprovechar las características de Docker como volumen, red y composición para gestionar mejor tu base de datos MongoDB.

MongoDB

En este artículo, Bardimin explicará paso a paso cómo instalar MongoDB con Docker en Windows. También proporcionaré algunos consejos y trucos para optimizar el uso de MongoDB con Docker.

Requisito

Antes de instalar MongoDB con Docker, debes cumplir los siguientes requisitos:

Instalar MongoDB con Docker en Windows

Para instalar MongoDB con Docker en Windows, siga estos pasos:

  1. Abra PowerShell o Símbolo del sistema como administrador.
  2. Ejecute el siguiente comando para crear un nuevo directorio en la unidad C: que se utilizará como volumen para almacenar los datos de MongoDB:
mkdir C:\data\db
  1. Ejecuta el siguiente comando para ejecutar un contenedor MongoDB llamado mongo utilizando una imagen mongo desde Docker Hub:.
docker run --name mongo -v C:\data\db:/data/db -d mongo

Este comando lo hará:

  1. –name mongo asigna el nombre de mongo al contenedor.
  2. -v C:\data\db:/data/db enlaza el directorio C:\data\db en el host al directorio /data/db en el contenedor como un volumen. Este volumen será utilizado por MongoDB para almacenar datos.
  3. -d ejecuta el contenedor en segundo plano (modo separado).
  4. Mongo especifica la imagen utilizada para crear el contenedor.
  5. Espera, unos instantes a que el contenedor termine de crearse y ejecutarse. Puedes comprobar el estado del contenedor ejecutando el siguiente comando:
docker ps

Este comando mostrará una lista de los contenedores que se están ejecutando actualmente en su máquina. Deberías ver una salida como esta:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS       NAMES
5f0b9c8a9f0a   mongo     "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   27017/tcp   mongo

Esta salida muestra que el contenedor mongo se está ejecutando con una imagen mongo y el puerto 27017 (el puerto por defecto de MongoDB).

  1. Enhorabuena, ¡has instalado con éxito MongoDB con Docker en Windows! Ahora puedes conectarte a tu base de datos MongoDB usando herramientas que te encantan, como MongoDB Shell, MongoDB Compass o controladores MongoDB para tu lenguaje de programación favorito.

Instalación de MongoDB con Docker en Linux

Para instalar MongoDB con Docker en Linux, sigue estos pasos:

  1. Abra un terminal e inicie sesión como root o un usuario con derechos sudo.
  2. Ejecuta el siguiente comando para crear un nuevo directorio en /data/db que se utilizará como volumen para almacenar los datos de MongoDB:
sudo mkdir -p /data/db
  1. Ejecuta el siguiente comando para ejecutar un contenedor MongoDB llamado mongo utilizando una imagen mongo desde Docker Hub:.
sudo docker run --name mongo -v /data/db:/data/db -d mongo

Este comando hará lo mismo que se describe en la sección anterior para Windows.

  1. Espere unos instantes a que el contenedor termine de crearse y ejecutarse. Puede comprobar el estado del contenedor ejecutando el siguiente comando:
sudo docker ps

Este comando mostrará una lista de los contenedores que se están ejecutando actualmente en su máquina. Deberías ver una salida como esta:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS       NAMES
5f0b9c8a9f0a   mongo     "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   27017/tcp   mongo

Esta salida indica que el contenedor mongo se está ejecutando con una imagen mongo y el puerto 27017 (el puerto por defecto de MongoDB).

  1. Enhorabuena, ¡has instalado con éxito MongoDB con Docker en Linux! Ahora puedes conectarte a tu base de datos MongoDB usando herramientas que te encantan, como MongoDB Shell, MongoDB Compass o controladores MongoDB para tu lenguaje de programación favorito.

Trucos y consejos

Aquí tienes algunos consejos y trucos que pueden ayudarte a optimizar el uso de MongoDB con Docker:

  • Si quieres detener el contenedor MongoDB, puedes ejecutar el siguiente comando:
docker stop mongo
  • Si quieres eliminar un contenedor MongoDB, puedes ejecutar el siguiente comando:
docker rm mongo
  • Si desea eliminar una imagen de MongoDB, puede ejecutar el siguiente comando:
docker rmi mongo
  • Si desea especificar la versión concreta de MongoDB que desea utilizar, puede añadir una etiqueta de versión después del nombre de la imagen. Por ejemplo, si desea utilizar la versión 5.0 de MongoDB, puede ejecutar el siguiente comando:
docker run --name mongo -v /data/db:/data/db -d mongo:5.0
  • Si desea exponer el puerto del contenedor a un puerto diferente del host, utilice la opción -p. Por ejemplo, si desea exponer el puerto 27017 de un contenedor al puerto 3000 del host, puede ejecutar el siguiente comando:
docker run --name mongo -v /data/db:/data/db -p 30000:27017 -d mongo
  • Si desea ejecutar varias instancias de MongoDB en la misma máquina, debe proporcionar nombres diferentes para cada contenedor y exponer puertos diferentes para cada contenedor. Por ejemplo, si desea ejecutar dos instancias de MongoDB llamadas mongo1 y mongo2, y exponer los puertos 27017 y 27018 desde el host, respectivamente, puede ejecutar los siguientes comandos:.
docker run --name mongo1 -v /data/db1:/data/db -p 27017:27017 -d mongo
docker run --name mongo2 -v /data/db2:/data/db -p 27018:27017 -d mongo
  • Si quieres usar Docker Compose para gestionar tus contenedores MongoDB más fácilmente, puedes crear un fichero docker-compose.yml con contenidos como este:
```
version: "3"
services:
  mongo:
    image: mongo
    volumes:
      - /data/db:/data/db
    ports:
      - 27017:27017
```
  • Si quieres conectar MongoDB con otras aplicaciones ejecutándose en contenedores Docker, puedes usar la red interna de Docker para permitir la comunicación entre contenedores. Por ejemplo, si quieres conectar MongoDB con una aplicación Node.js ejecutándose en un contenedor app, puedes crear un archivo docker-compose.yml con contenidos como este:
version: "3"
services:
  mongo:
    image: mongo
    volumes:
      - /data/db:/data/db
    networks:
      - app-network
  app:
    image: node
    volumes:
      - /app:/app
    ports:
      - 3000:3000
    networks:
      - app-network
networks:
  app-network:
  • Si quieres configurar MongoDB con más detalle, utiliza un fichero de configuración personalizado que contenga las opciones que desees. Por ejemplo, si desea habilitar la autenticación y el cifrado para MongoDB, puede crear un archivo mongod.conf con un contenido como este:
systemLog:
  destination: file
  path: "/var/log/mongodb/mongod.log"
  logAppend: true
storage:
  dbPath: "/data/db"
  journal:
    enabled: true
net:
  port: 27017
  bindIp: 0.0.0.0
  tls:
    mode: requireTLS
    certificateKeyFile: "/etc/ssl/mongodb.pem"
security:
  authorization: enabled
  • Si desea utilizar ese archivo de configuración, debe copiarlo en un directorio al que el contenedor MongoDB pueda acceder, y proporcionar la ruta de ese archivo como argumento al ejecutar el contenedor. Por ejemplo, si copia el archivo mongod.conf al directorio /etc/mongo en el host, puede ejecutar el siguiente comando:
docker run --name mongo -v /etc/mongo:/etc/mongo -v /data/db:/data/db -d mongo --config /etc/mongo/mongod.conf

Conclusión

Usando Docker, puedes crear una base de datos MongoDB fácil y rápidamente, sin preocuparte por la compatibilidad o las dependencias. También puede aprovechar las características de Docker, como el volumen, la conexión en red y la composición, para gestionar mejor su base de datos MongoDB.

Espero que este artículo haya sido útil para aquellos que quieran aprender sobre cómo instalar MongoDB con Docker. ¡Gracias por leernos!

ARTÍCULOS RELACIONADOS

Artículos más recientes