Instalacion de MONGODB con Docker

A continuación vamos a mostrar como estoy instalando mongodb en un contenedor docker.

Prerequisitos

  • AMD A4 8GB RAM y SSD 480
  • Ubuntu Desktop 20.04 LTS
  • Docker CE

Instalación

  • Baja la imagen 
$ docker pull mongo
  • Ten a la mano los siguientes datos que debes de poner para asegurar cuando levantes el servidor dentro del contenedor.
    1. ruta donde se va almacenar los datos.
    2. usuario y contraseña con el cual se va a generar el root del mongo.
    3. puerto en el cual se va a natear el contenedor al host.
  • Crea el contenedor con la imagen que acabas de bajar poniendo escribiendo los parámetros, en el archivo mongo.yml
$ cat > mongo-docker.yml
# Use root/example as user/password credentials
version: '3.1'

services:

  mongo:
    image: mongo
    restart: always
    container_name: docker-mongodb
    ports:
             - 27017:27017
    volumes:
             - /mnt/secondary/data/db:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: xxxxxx

$ chmod 777 mongo.yml
  • tambien puedes crear el contenedor con la imagen que acabas de bajar escribiendo los parámetros en la linea de comando
$ docker run --name docker-mongo 
-v /home/user/data/mongodb:/data/db 
-p 27017:27017 
-e MONGO_INITDB_ROOT_USERNAME=administrator 
-e MONGO_INITDB_ROOT_PASSWORD=XXXXX 
--restart always -d mongo
  • ahora si puedes conectarte desde el host del contenedor a mongodb, y ya estas listo para trabajar, con la siguiente sentencia.
$ mongo -u administrador -p xxxxx --authenticationDatabase admin
  • tambien puedes conectarte desde un equipo que no sea el host con la siguiente sentencia.
$ mongo --host xxx.xxx.xxx.xxx -u administrator -p xxxxxxx --authenticationDatabase admin

Cómo configurar un servidor para producción 

  • Las características que debe de tener un servidor de producción, 
    1. Debe estar cifrada la comunicación con ssl
    2. Debe de tener un administrator, con una contraseña fuerte
    3. Debes de tener un usuario por cada base de datos que crees en el servidor.
    4. Debe de tener un respaldo de la base de datos.
    5. Debes de tener configurado un esquema de recuperación del servidor.
  • Debes de cifrar la comunicación con ssl

  • Crea el usuario administrador de la base de datos.
$ mongo --host xxx.xxx.xxx.xxx -u administrator -p xxxxxxxxxx --authenticationDatabase admin
$ db.createUser(
 {
    user: "rrhh_dbo",
    pwd: "xxxxxx",
    roles: [ { role: "readWrite", db: "rrhh" } ]
  }
)