Estibador

Configurar un servidor MongoDB con Docker

Configurar un servidor MongoDB con Docker
En este artículo, le mostraré cómo usar Docker Compose para crear un contenedor MongoDB y acceder a él usando Mongo Express, la interfaz de administración de MongoDB basada en la web. Entonces empecemos.

Requerimientos:

Para seguir este artículo, debe tener Docker instalado en su computadora. LinuxHint tiene muchos artículos que puede seguir para instalar Docker en la distribución de Linux que desee si aún no lo tiene instalado. Por lo tanto, asegúrese de verificar LinuxHint.com en caso de que tenga problemas para instalar Docker.

Instalación de Docker Compose:

Para instalar Docker Compose, abra una Terminal y ejecute el siguiente comando:

$ sudo curl -L "https: // github.com / docker / compose / releases / download / 1.24.1 /
docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose

CURL debería comenzar a descargar el binario de Docker Compose. Puede que tarde un poco en completarse.

Una vez que se complete la descarga, agregue el permiso ejecutable al docker-compose archivo binario con el siguiente comando:

$ sudo chmod + x / usr / local / bin / docker-compose

Ahora, compruebe si docker-compose binary es accesible con el siguiente comando:

$ docker-compose --version

Como se puede ver, docker-compose binario funciona correctamente.

Configuración del servidor MongoDB mediante Docker Compose:

En esta sección, le mostraré una configuración muy básica de MongoDB y Mongo Express usando Docker Composer.

Primero, crea un nuevo directorio de proyecto mongo-latest / como sigue:

$ mkdir mongo-latest

Ahora, navega hasta el mongo-latest / directorio de la siguiente manera:

$ cd mongo-latest /

Ahora, cree un nuevo archivo de configuración de Docker Compose docker-compose.yml como sigue:

$ nano docker-compose.yml

Ahora, escriba las siguientes líneas de códigos en el archivo docker-compose.yml.

versión: '3'
servicios:
mongo:
imagen: mongo
reiniciar: siempre
puertos:
- "27017: 27017"
 
mongo-express:
imagen: mongo-express
reiniciar: siempre
puertos:
- "8081: 8081"

Aquí, estamos definiendo dos servicios, mongo y mongo-express. La mongo El servicio es responsable de iniciar el mongo (imagen) Contenedor Docker. La mongo Puerto de contenedores Docker 27017 se reenvía al puerto 27017 en su host de Docker. La mongo-express El servicio es responsable de iniciar el mongo-express (imagen) Contenedor Docker. De la misma manera, puerto 8081 se reenvía al puerto 8081 en el host de Docker.

Ambos servicios están configurados para reiniciarse (reiniciar: siempre) en caso de falla.

Ahora, guarde el archivo presionando + X seguido por Y y .

Ahora, para iniciar los servicios MongoDB y Mongo Express, ejecute el siguiente comando:

$ docker-compose up -d

Si está ejecutando este comando por primera vez, puede llevar un tiempo iniciar los servicios, ya que las imágenes de Docker se descargarán de Docker Hub.

Los servicios deberían comenzar.

Ahora, desde un navegador web, visite http: // localhost: 8081 y la interfaz web de Mongo Express debería mostrarse como puede ver en la captura de pantalla a continuación. Desde aquí, puede administrar las bases de datos de MongoDB, agregar datos a la base de datos y mucho más.

Configuración de la contraseña de la base de datos MongoDB:

Si desea configurar una contraseña de base de datos MongoDB, esta sección es para usted.

Primero, detenga los servicios MongoDB y Mongo Express de la siguiente manera:

$ docker-compose abajo

Ahora, edite el docker-compose.yml archivo de la siguiente manera:

$ nano docker-compose.yml

Ahora, agregue el texto marcado (negrita) a continuación al archivo de configuración docker-compose.yml.

versión: '3'
servicios:
mongo:
imagen: mongo
reiniciar: siempre
puertos:
- "27017: 27017"
ambiente:
MONGO_INITDB_ROOT_USERNAME: raíz
MONGO_INITDB_ROOT_PASSWORD: secreto
mongo-express:
imagen: mongo-express
reiniciar: siempre
puertos:
- "8081: 8081"
ambiente:
ME_CONFIG_MONGODB_ADMINUSERNAME: raíz
ME_CONFIG_MONGODB_ADMINPASSWORD: secreto

La MONGO_INITDB_ROOT_USERNAME: raíz y MONGO_INITDB_ROOT_PASSWORD: secreto en el mongo La sección de servicio se utiliza para establecer el nombre de usuario de MongoDB raíz y contraseña secreto.

La ME_CONFIG_MONGODB_ADMINUSERNAME: raíz y ME_CONFIG_MONGODB_ADMINPASSWORD: secreto en el mongo-express La sección de servicio se usa para decirle a Mongo Express que use el nombre de usuario raíz y contraseña secreto para conectarse al servidor MongoDB.

Archivo de configuración final.

Ahora, inicie los servicios de la siguiente manera:

$ docker-compose up -d

Como puede ver, todavía puedo acceder a la interfaz web de Mongo Express.

Cambié el mongo-express contraseña a algo que no sea secreto, y como puede ver, no pude conectarme al servidor MongoDB. Entonces, todo está funcionando como se esperaba.

Guardar datos de MongoDB mediante volúmenes:

De forma predeterminada, el contenedor MongoDB no guarda ningún dato. Si desea que los datos de su base de datos MongoDB persistan, debe usar volúmenes Docker. Te mostraré como en esta sección.

Primero, detenga los servicios de la siguiente manera:

$ docker-compose abajo

Ahora, agregue la sección marcada (negrita) a la docker-compose.yml expediente.

versión: '3'
servicios:
mongo:
imagen: mongo
reiniciar: siempre
puertos:
- "27017: 27017"
ambiente:
MONGO_INITDB_ROOT_USERNAME: raíz
MONGO_INITDB_ROOT_PASSWORD: secreto
volúmenes:
- mongo-datos: / data / db
 
mongo-express:
imagen: mongo-express
reiniciar: siempre
puertos:
- "8081: 8081"
ambiente:
ME_CONFIG_MONGODB_ADMINUSERNAME: raíz
ME_CONFIG_MONGODB_ADMINPASSWORD: secreto
volúmenes:
mongo-datos:

Aquí, definí un nuevo volumen con nombre mongo-datos que guarda los datos de la ruta / data / db de El mongo envase.

Archivo de configuración final.

Ahora, inicie los servicios de la siguiente manera:

$ docker-compose up -d

Como puede ver, la interfaz web de Mongo Express funciona correctamente.

Creé una nueva base de datos mydb.

Ahora, reinicie los servicios de la siguiente manera:

$ docker-compose reiniciar

Como puede ver, incluso después de reiniciar el mongo (MongoDB) y mongo-express (Mongo Express) da servicio al mydb la base de datos todavía está disponible. Entonces, funcionó.

Cambio del nombre del contenedor de MongoDB:

De forma predeterminada, el nombre del servicio de base de datos MongoDB debe ser mongo para que Mongo Express funcione. Pero, si desea cambiar el nombre del servicio de la base de datos a algo más como servidor mongodb, entonces tendrás que decirle al mongo-express servicio que has cambiado el mongo nombre del servicio a otra cosa.

Primero, detenga los servicios de la siguiente manera:

$ docker-compose abajo

Ahora, cambie / agregue el texto marcado en el docker-compose.yml archivo de configuración.

versión: '3'
servicios:
servidor mongodb:
imagen: mongo
reiniciar: siempre
puertos:
- "27017: 27017"
ambiente:
MONGO_INITDB_ROOT_USERNAME: raíz
MONGO_INITDB_ROOT_PASSWORD: secreto
volúmenes:
- mongo-datos: / data / db
 
mongo-express:
imagen: mongo-express
reiniciar: siempre
puertos:
- "8081: 8081"
ambiente:
ME_CONFIG_MONGODB_ADMINUSERNAME: raíz
ME_CONFIG_MONGODB_ADMINPASSWORD: secreto
ME_CONFIG_MONGODB_SERVER: servidor-mongodb
volúmenes:
mongo-datos:

Aquí, ME_CONFIG_MONGODB_SERVER: servidor-mongodb se usa para decirle al mongo-express servicio que el mongo el nombre del servicio se cambia a servidor mongodb.

El archivo de configuración final.

Ahora, inicie los servicios de la siguiente manera:

$ docker-compose up -d

Como puede ver, la interfaz web de Mongo Express aún funciona.

Configuración de la contraseña de acceso a Mongo Express:

De forma predeterminada, la interfaz de administración de Mongo Express no le solicita ninguna información de inicio de sesión. Pero si desea configurar un método de autenticación de nombre de usuario y contraseña, esta sección es para usted.

Primero, detenga los servicios de la siguiente manera:

$ docker-compose abajo

Ahora, agregue el texto marcado (negrita) al docker-compose.yml archivo de configuración.

versión: '3'
servicios:
mongo:
imagen: mongo
reiniciar: siempre
puertos:
- "27017: 27017"
ambiente:
MONGO_INITDB_ROOT_USERNAME: raíz
MONGO_INITDB_ROOT_PASSWORD: secreto
volúmenes:
- mongo-datos: / data / db
 
mongo-express:
imagen: mongo-express
reiniciar: siempre
puertos:
- "8081: 8081"
ambiente:
ME_CONFIG_MONGODB_ADMINUSERNAME: raíz
ME_CONFIG_MONGODB_ADMINPASSWORD: secreto
ME_CONFIG_BASICAUTH_USERNAME: administrador
ME_CONFIG_BASICAUTH_PASSWORD: secreto
volúmenes:
mongo-datos:

Aquí, ME_CONFIG_BASICAUTH_USERNAME: administrador y ME_CONFIG_BASICAUTH_PASSWORD: secreto se usa para contar mongo-express servicio para usar el nombre de usuario administración y la contraseña secreto para autenticación.

Archivo de configuración final.

Ahora, inicie los servicios de la siguiente manera:

$ docker-compose up -d

Ahora, si intenta visitar la página de Mongo Express, se le pedirá que se autentique con su nombre de usuario y contraseña.

Si proporciona el nombre de usuario y la contraseña correctos, podrá utilizar Mongo Express para administrar su base de datos MongoDB.

Referencias:

Para obtener más información, consulte los siguientes enlaces:
[1] Página oficial de Docker Hub de mongo
[2] Página oficial de Docker Hub de mongo-express

Entonces, así es como configura un servidor MongoDB usando Docker. Gracias por leer este artículo.

Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...
Instale el último emulador de Dolphin para Gamecube y Wii en Linux
Dolphin Emulator te permite jugar los juegos de Gamecube y Wii que elijas en computadoras personales con Linux (PC). Al ser un emulador de juegos de ...
Cómo usar GameConqueror Cheat Engine en Linux
El artículo cubre una guía sobre el uso del motor de trucos GameConqueror en Linux. Muchos usuarios que juegan juegos en Windows a menudo usan la apli...