MongoDB replicada para desarrollo local utilizando Docker

En el siguiente artículo mostraré como crear una base de datos de MongoDB replicada para desarrollos locales o de pruebas. Como requisito antes de empezar se debe tener instalado docker en nuestro ordenador.

En la carpeta de tu elección crear un archivo llamado docker-compose.yaml con el siguiente contenido:

services:
  db1:
    restart: always
    image: mongo:latest
    command: --replSet rs0 --port 27018
    ports:
      - 27018:27018
    volumes:
      - db1:/data/db
  db2:
    restart: always
    image: mongo:latest
    command: --replSet rs0 --port 27019
    ports:
      - 27019:27019
    volumes:
      - db2:/data/db
volumes:
  db1:
  db2:
docker-compose.yaml

Para crear nuestros contenedores y acceder a uno de ellos ejecutamos los siguientes comandos en nuestra terminal:

# crear las máquinas virtuales
docker compose -p mongo up -d

# listar contendores
docker ps

# accede al contenedor por el puerto 27018 o 27019
docker exec -it <id-del-contenedor> mongo --port <puerto-de-mongo>

# ejemplo
docker exec -it 1a5f5e82bed8 mongosh --port 27018

Una vez dentro iniciamos la replica con los siguientes comandos:

rs.initiate({
  "_id": "rs0",
  "members": [
    {
      "_id": 0,
      "host": "172.17.0.1:27018"
    },
    {
      "_id": 1,
      "host": "172.17.0.1:27019"
    }
  ]
})

Listo! Testeamos nuestra replica de pruebas accediendo a ella con:

mongosh "mongodb://127.0.0.1:27018,127.0.0.1:27019/?replicaSet=rs0"

No olvidar que esta base de datos no tiene seguridades, es para fines de pruebas o desarrollo local y de ninguna manera se debería considerar para un ambiente de producción

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *