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 administrador MongoDB basada en la web. Entonces empecemos.

Requisitos:

Para seguir este artículo, debe tener instalado Docker en su computadora. Linuxhint tiene muchos artículos que puede seguir para instalar Docker en su distribución de Linux deseada si aún no lo tiene instalado. Entonces, 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 un terminal y ejecute el siguiente comando:

$ sudo curl -l "https: // github.com/docker/compose/comunes/descargar/1.24.1/
Docker-Compose-$ (uname -s)-$ (uname -m) "-o/usr/local/bin/docker-composa

Curl debe comenzar a descargar Docker Compose Binary. Puede tomar un tiempo completar.

Una vez que se complete la descarga, agregue el permiso ejecutable al compuesto de acopolador Archivo binario con el siguiente comando:

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

Ahora, verifique si compuesto de acopolador Se puede acceder al binario con el siguiente comando:

$ Docker-Compose-Versión

Como se puede ver, compuesto de acopolador El binario funciona correctamente.

Configuración del servidor MongoDB usando Docker Compose:

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

Primero, cree un nuevo directorio de proyectos Mongo-Latest/ como sigue:

$ Mkdir Mongo-Latest

Ahora, navegue al Mongo-Latest/ Directorio de la siguiente manera:

$ CD Mongo-Latest/

Ahora, cree un nuevo archivo de configuración de Docker Compose compuesto de acopolador.YML como sigue:

$ Nano Docker-Compose.YML

Ahora, escriba las siguientes líneas de códigos en el archivo compuesto de acopolador.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. El mongo El servicio es responsable de comenzar el mongo (Imagen) Container Docker. El mongo Puerto de contenedor Docker 27017 se reenvía al puerto 27017 En tu anfitrión de Docker. El mongo-express El servicio es responsable de comenzar el mongo-express (Imagen) Container Docker. De la misma manera, puerto 8081 se reenvía al puerto 8081 en el anfitrión de Docker.

Ambos servicios están configurados para reiniciar (reiniciar: siempre) Sobre el fracaso.

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

Ahora, para comenzar 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 desde Docker Hub.

Los servicios deberían comenzar.

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

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

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

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

$ Docker-Compose Down

Ahora, edite el compuesto de acopolador.YML Archivo de la siguiente manera:

$ Nano Docker-Compose.YML

Ahora, agregue el texto marcado (BOLD) a continuación al archivo de configuración compuesto de acopolador.YML.

Versión: '3'
servicios:
Mongo:
Imagen: Mongo
reiniciar: siempre
Puertos:
- "27017: 27017"
ambiente:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: secreto
Mongo-Express:
Imagen: Mongo-Express
reiniciar: siempre
Puertos:
- "8081: 8081"
ambiente:
Me_config_mongodb_adminusername: root
Me_config_mongodb_adminpassword: secreto

El Mongo_initdb_root_username: root y Mongo_initdb_root_password: secreto en el mongo La sección de servicio se utilizan para establecer el nombre de usuario MongoDB raíz y contraseña secreto.

El Me_config_mongodb_adminusername: root 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, comience los servicios de la siguiente manera:

$ Docker -Compose Up -d

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

Cambié el mongo-express contraseña a algo más que secreto, Y como puede ver, no pude conectarme al servidor MongoDB. Entonces, todo funciona como se esperaba.

Guardar datos de MongoDB utilizando volúmenes:

Por defecto, el contenedor MongoDB no guarda ningún dato. Si desea que persistan sus datos de base de datos MongoDB, debe usar volúmenes de Docker. Te mostraré cómo en esta sección.

Primero, detenga los servicios de la siguiente manera:

$ Docker-Compose Down

Ahora, agregue la sección marcada (en negrita) al compuesto de acopolador.YML archivo.

Versión: '3'
servicios:
Mongo:
Imagen: Mongo
reiniciar: siempre
Puertos:
- "27017: 27017"
ambiente:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: secreto
Volúmenes:
- Mongo-Data:/Data/DB
Mongo-Express:
Imagen: Mongo-Express
reiniciar: siempre
Puertos:
- "8081: 8081"
ambiente:
Me_config_mongodb_adminusername: root
Me_config_mongodb_adminpassword: secreto
Volúmenes:
Mongo-Data:

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

Archivo de configuración final.

Ahora, comience 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) Servicios del mydb la base de datos todavía está disponible. Entonces, funcionó.

Cambiar el nombre del contenedor MongoDB:

Por defecto, el nombre del servicio de la base de datos de MongoDB debe ser mongo Para que Mongo Express funcione. Pero, si desea cambiar el nombre del servicio de la base de datos a otra cosa como servidor de mongodb, Entonces tendrás que decirle al mongo-express servicio que ha cambiado el mongo Nombre del servicio a otra cosa.

Primero, detenga los servicios de la siguiente manera:

$ Docker-Compose Down

Ahora, cambie/agregue el texto marcado en el compuesto de acopolador.YML archivo de configuración.

Versión: '3'
servicios:
MongoDB-server:
Imagen: Mongo
reiniciar: siempre
Puertos:
- "27017: 27017"
ambiente:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: secreto
Volúmenes:
- Mongo-Data:/Data/DB
Mongo-Express:
Imagen: Mongo-Express
reiniciar: siempre
Puertos:
- "8081: 8081"
ambiente:
Me_config_mongodb_adminusername: root
Me_config_mongodb_adminpassword: secreto
Me_config_mongodb_server: mongodb-server
Volúmenes:
Mongo-Data:

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

El archivo de configuración final.

Ahora, comience los servicios de la siguiente manera:

$ Docker -Compose Up -d

Como puede ver, la interfaz web de Mongo Express está funcionando todavía.

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

De manera predeterminada, la interfaz Mongo Express Admin 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, entonces esta sección es para usted.

Primero, detenga los servicios de la siguiente manera:

$ Docker-Compose Down

Ahora, agregue el texto marcado (en negrita) al compuesto de acopolador.YML archivo de configuración.

Versión: '3'
servicios:
Mongo:
Imagen: Mongo
reiniciar: siempre
Puertos:
- "27017: 27017"
ambiente:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: secreto
Volúmenes:
- Mongo-Data:/Data/DB
Mongo-Express:
Imagen: Mongo-Express
reiniciar: siempre
Puertos:
- "8081: 8081"
ambiente:
Me_config_mongodb_adminusername: root
Me_config_mongodb_adminpassword: secreto
Me_config_basicauth_username: admin
Me_config_basicauth_password: secreto
Volúmenes:
Mongo-Data:

Aquí, Me_config_basicauth_username: admin y Me_config_basicauth_password: secreto se usa para decir mongo-express servicio para usar el nombre de usuario administración y la contraseña secreto para la autenticación.

Archivo de configuración final.

Ahora, comience 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 utilizando su nombre de usuario y contraseña.

Si proporciona el nombre de usuario y la contraseña correctos, se le permitirá usar 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 configuras un servidor MongoDB usando Docker. Gracias por leer este artículo.