Introducción
MongoDB es una solución práctica de base de datos NoSQL. No utiliza una estructura de datos fija, por lo que es escalable e ideal para gestionar cargas de trabajo dinámicas. MongoDB es ideal para entornos distribuidos, como contenedores Docker.
El uso de Docker y una imagen de contenedor oficial de MongoDB puede acortar y simplificar significativamente el proceso de implementación de la base de datos.
Este tutorial le mostrará cómo implementar una instancia de MongoDB en un contenedor Docker .
Requisitos previos
- Un usuario con sudo privilegios
- Acceso a una línea de comando
- Una instancia de Docker en ejecución
Descargar imagen de MongoDB para Docker
Siga las instrucciones paso a paso a continuación para descargar la última imagen oficial de MongoDB para Docker.
- Su servicio Docker debe estar activo y en funcionamiento. Puede verificar rápidamente el estado actual ingresando el siguiente comando en su terminal:
sudo service docker status
En este ejemplo, el servicio Docker está activo y ejecutándose.
- Continúe con la descarga de la última imagen oficial de Docker para la base de datos de MongoDB:
sudo docker pull mongo
La imagen indica que el sistema usó el latest
etiqueta por defecto.
Para descargar una versión específica de MongoDB, use el mismo comando adjunto con la etiqueta de versión. Por ejemplo:
sudo docker pull mongo:4.2.2
- Enumere las imágenes en su repositorio de Docker con el siguiente comando:
sudo docker images
La interfaz confirma que la imagen de MongoDB ya está disponible.
Implementar contenedor MongoDB
De forma predeterminada, MongoDB almacena datos en /data/db directorio dentro del contenedor Docker. Para remediar esto, monte un directorio desde el sistema host subyacente al contenedor que ejecuta la base de datos MongoDB. De esta manera, los datos se almacenan en su sistema host y no se borrarán si falla una instancia de contenedor.
- Cree un /mongodata directorio en el sistema host:
sudo mkdir -p /mongodata
- Inicie el contenedor Docker con
run
comando usando la imagen mongo. El /datos/db El directorio en el contenedor está montado como /mongodata en el anfitrión. Además, este comando cambia el nombre del contenedor a mongodb :
sudo docker run -it -v mongodata:/data/db --name mongodb -d mongo
-it
– Proporciona un shell interactivo al contenedor Docker.
-v
– Utilice esta opción para adjuntar el /mongodata volumen de host al /data/db volumen del contenedor.
-d
– Inicia el contenedor como un proceso en segundo plano.
--name
– Nombre del contenedor.
- Una vez que el servidor MongoDB comience a ejecutarse en un contenedor, verifique el estado escribiendo:
sudo docker ps
El número de puerto predeterminado es 27017, como se puede ver en la salida.
- Opcionalmente, puede especificar el puerto MongoDB explícitamente:
sudo docker run -it -v mongodata:/data/db -p 27017:27017 --name mongodb -d mongo
- Consulte siempre el registro de Docker para ver la cadena de eventos después de realizar cambios:
sudo docker logs mongodb
Los registros proporcionan una gran cantidad de información útil.
Inicie el terminal Docker interactivo (Bash Shell) para administrar la base de datos MongoDB
- El contenedor se está ejecutando actualmente en modo separado . Conéctese al contenedor usando la terminal interactiva en su lugar:
sudo docker exec -it mongodb bash
- Inicie el shell de MongoDB escribiendo
mongo
en la terminal interactiva.
El shell de MongoDB se inicia y el indicador está listo para aceptar sus comandos.
- En lugar de simplemente escribir
mongo
, también puede definir un host y un puerto específicos escribiendo:
mongo -host localhost -port 27017
Con el shell de MongoDB, ahora puede crear una base de datos, agregar colecciones o administrar documentos individuales.
Cómo salir de MongoDB y de Interactive Shell
Escribe exit
para salir del shell de MongoDB y luego exit
una vez más para salir del shell interactivo.
Como alternativa, puede escribir quit()
o usa Ctrl-C para salir del caparazón.
Detención y reinicio de la base de datos MongoDB
La docker stop
comando es un comando breve y claro que deja de ejecutar instancias de contenedor:
sudo docker stop mongodb
Inspeccione la lista de contenedores Docker en ejecución escribiendo:
sudo docker ps
Los contenedores se inician con docker start
comando:
sudo docker start mongodb
La lista de contenedores en ejecución ahora confirma que la base de datos MongoDB se ha iniciado una vez más:
sudo docker ps