Instalar MongoDB con Docker


Aprende a instalar y configurar MongoDB junto con Mongo Express usando Docker Compose. Crea contenedores conectados, configura credenciales, volúmenes persistentes y administra tu base de datos desde una interfaz web.

Instalar MongoDB con Docker
oscar Escrito por oscar 10 June 2026 7 0

MongoDB es una de las bases de datos NoSQL más utilizadas para desarrollar aplicaciones modernas gracias a su modelo flexible basado en documentos. Cuando se combina con Docker Compose, es posible automatizar la creación del entorno de desarrollo y desplegar una base de datos lista para usar en pocos minutos.

En esta guía aprenderás cómo crear un contenedor de MongoDB y conectarlo con Mongo Express, una interfaz web que permite administrar colecciones, documentos y bases de datos desde el navegador. Además, conocerás cómo configurar credenciales, exponer puertos, persistir datos mediante volúmenes y establecer comunicación entre contenedores utilizando redes Docker.

Instalar MongoDB con Docker Compose

MongoDB puede ejecutarse fácilmente dentro de un contenedor Docker, evitando instalaciones manuales sobre el sistema operativo. Esta es una de las formas más utilizadas en entornos de desarrollo, pruebas e incluso producción.

Antes de comenzar debes tener instalado Docker y Docker Compose en tu equipo.

Verificar los prerrequisitos

Comprobar Docker

Comprueba que Docker está instalado correctamente:

docker --version

Comprueba que Docker Compose está disponible:

docker compose version

Si ambos comandos responden correctamente puedes continuar.

Enlaces de interés de Docker

Crear la estructura del proyecto

Crea una carpeta para alojar la configuración de MongoDB.

mkdir mongodb-docker
cd mongodb-docker

La estructura inicial será:

mongodb-docker/
└── docker-compose.yml

Crear el archivo docker-compose.yml

Crea el archivo docker-compose.yml:

touch docker-compose.yml

Añade el siguiente contenido:

version: '3.9'

services:

  mongodb:
    image: mongo:8
    container_name: mongodb

    restart: unless-stopped

    ports:
      - "27017:27017"

    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin123

    volumes:
      - mongodb_data:/data/db

    networks:
      - mongo-network

  mongo-express:
    image: mongo-express:latest
    container_name: mongo-express

    restart: unless-stopped

    depends_on:
      - mongodb

    ports:
      - "8081:8081"

    environment:
      ME_CONFIG_MONGODB_SERVER: mongodb
      ME_CONFIG_MONGODB_PORT: 27017

      ME_CONFIG_MONGODB_ADMINUSERNAME: admin
      ME_CONFIG_MONGODB_ADMINPASSWORD: admin123

      ME_CONFIG_BASICAUTH_USERNAME: admin
      ME_CONFIG_BASICAUTH_PASSWORD: admin123

    networks:
      - mongo-network

networks:
  mongo-network:
    driver: bridge

volumes:
  mongodb_data:

Explicación

Levantar MongoDB

Inicia el contenedor:

docker compose up -d

Verifica que se encuentre ejecutándose:

docker ps

Deberías obtener una salida similar:

CONTAINER ID   IMAGE     STATUS
xxxxxxxxxxxx   mongo:8   Up

Revisar los logs

Para comprobar que MongoDB inició correctamente:

docker logs mongodb

O visualizar los logs en tiempo real:

docker logs -f mongodb

Conectarse a MongoDB desde la terminal

Accede al contenedor:

docker exec -it mongodb bash

Respuesta:

root@798aa9eb9000:/#

Dentro del contenedor ejecuta:

mongosh -u admin -p admin123

Si la autenticación es correcta ingresarás a la consola de MongoDB.

Realizar las primeras pruebas

Mostrar las bases de datos existentes:

show dbs

Crear una nueva base de datos:

use blog

Crear una colección:

db.createCollection("articles")

Insertar un documento:

db.articles.insertOne({
  title: "Mi primer artículo",
  author: "Oscar",
  createdAt: new Date()
})

Consultar documentos:

db.articles.find()

Cadena de conexión

Si deseas conectarte desde una aplicación Java, Node.js, Python o cualquier cliente MongoDB, puedes utilizar:

mongodb://admin:admin123@localhost:27017

Si deseas autenticar sobre la base de datos admin:

mongodb://admin:admin123@localhost:27017/?authSource=admin

Conectarse desde MongoDB Compass

MongoDB Compass es la interfaz gráfica oficial para administrar MongoDB.

Parámetros de conexión:

Persistencia de datos

Uno de los conceptos más importantes es el volumen:

volumes:
  - mongodb_data:/data/db

MongoDB almacena toda la información dentro de /data/db. Gracias al volumen, los datos permanecerán incluso si eliminas o recreas el contenedor.

Comandos de administración más utilizados

Detener MongoDB:

docker compose stop

Iniciar MongoDB:

docker compose start

Reiniciar MongoDB:

docker compose restart

Eliminar contenedores:

docker compose down

Eliminar contenedores y volúmenes:

docker compose down -v

Comentario

Debe aceptar antes de enviar