MongoDB es una base de datos NoSQL de código abierto que utiliza documentos y esquemas similares a JSON que admiten un desarrollo iterativo rápido. Su arquitectura escalable es popular entre los desarrolladores de aplicaciones que usan metodologías ágiles para moverse rápidamente. Como es popular dentro de la comunidad ágil, usar MongoDB con Docker es un enfoque excelente para una integración y desarrollo continuos (CI/CD) flujo de trabajo.
Antes de comenzar
Para completar los ejemplos de esta guía, primero configure y asegure un Linode con Docker instalado. Puede lograr esto utilizando la aplicación Docker Marketplace o mediante la instalación manual. Las instrucciones para ambos enfoques se proporcionan a continuación.
Esta guía asume que se siente cómodo con la interfaz de línea de comandos (CLI) en un sistema tipo Unix y usarlo para trabajar con programas.
Configurar un Linode con Docker
Aplicación Docker Marketplace
Puede configurar rápidamente un Linode seguro y actualizado con la aplicación Docker Marketplace. Para obtener instrucciones, consulte nuestra guía sobre cómo implementar Docker con aplicaciones de Marketplace. A los efectos de esta guía, recomendamos implementar la aplicación Docker Marketplace con las opciones de Docker:
- El usuario sudo limitado que se creará para Linode
- La contraseña para el usuario sudo limitado
- La clave pública SSH del usuario sudo limitado que se usará para acceder a Linode
- ¿Deshabilitar el acceso raíz a través de SSH? (sí)
Instalación manual
-
Familiarícese con nuestra guía de inicio y complete los pasos para actualizar su Linode.
-
Complete las secciones de nuestro Proteger su servidor para crear una cuenta de usuario estándar, fortalecer el acceso SSH y eliminar servicios de red innecesarios.
-
Instale Docker en su Linode siguiendo los pasos de nuestra guía sobre Cómo instalar y usar Docker en Ubuntu y Debian.
Verificar la instalación de Docker
Verifique que Docker esté instalado en su Linode:
docker --version
Puede esperar un resultado similar al siguiente:
Docker version 20.10.8, build 3967b7d
NotaEsta guía está escrita para un usuario no root. Los comandos que requieren privilegios elevados tienen el prefijo
sudo
. Si no está familiarizado consudo
comando, visite nuestra guía de Usuarios y Grupos.Todos los archivos de configuración deben editarse con privilegios elevados. Recuerda incluir
sudo
antes de ejecutar su editor de texto.
Cómo instalar un contenedor MongoDB Docker
Docker hace que la creación de una imagen MongoDB sea muy fácil, ya que mantienen una versión mantenida oficialmente en Docker Hub. Para instalarlo:
-
Descargue e instale la imagen de MongoDB desde Docker Hub:
sudo docker pull mongo
El resultado a medida que se descarga la imagen debe parecerse al siguiente:
Using default tag: latest latest: Pulling from library/mongo 16ec32c2132b: Pull complete 6335cf672677: Pull complete cbc70ccc8ebe: Pull complete 0d1a3c6bd417: Pull complete 960f3b9b27d3: Pull complete aff995a136b4: Pull complete 4249be7550a8: Pull complete cc105ff5aa3c: Pull complete 82819807d07a: Pull complete 81447d2c233f: Pull complete Digest: sha256:54d24682d00278f64bf21ff62b7ee62b59dae50f65139831a884b345922b0f8a Status: Downloaded newer image for mongo:latest docker.io/library/mongo:latest
Nota Este comando extrae la última versión de forma predeterminada (como dice en la primera línea de la salida). Para obtener una versión específica, agregue la etiqueta de esa versión al comando. Por ejemplo, para instalar MongoDB 4.4.6, ingrese
docker pull mongo:4.4.6
. -
Asegúrese de que la imagen se haya instalado:
sudo docker images
La salida debería verse así:
REPOSITORY TAG IMAGE ID CREATED SIZE mongo latest 07630e791de3 2 weeks ago 449MB
-
Crea un contenedor con el
mongo
imagen en modo separado para que siga siendo interactiva en su sistema:sudo docker run --name mongo_example -d mongo
-
Asegúrese de que el contenedor se esté ejecutando:
sudo docker ps
La salida debería verse así:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1f88d00b9e78 mongo "docker-entrypoint.s…" 4 seconds ago Up 4 seconds 27017/tcp mongo_example
MongoDB ahora se ejecuta como un contenedor Docker.
Cómo iniciar sesión en MongoDB en el contenedor
-
Ingrese lo siguiente para obtener el aviso de bash dentro del contenedor:
sudo docker exec -it mongo_example bash
-
Una vez en el símbolo del sistema del contenedor, ingrese el
mongosh
concha:mongosh
Del mongosh
shell, puede probar consultas y operaciones directamente con su base de datos.
Nota El legadomongo
shell ha quedado obsoleto en MongoDB v5.0, pero aún se puede acceder a él como una alternativa amongosh
.
Cómo configurar MongoDB en un contenedor Docker
Para obtener detalles sobre la configuración de MongoDB, consulte el manual de MongoDB. Sin embargo, mongod
(El demonio principal de MongoDB) los indicadores generalmente se configuran para configurar MongoDB y docker run
El comando está diseñado para pasar el mongod
banderas.
Por ejemplo, para apagar el motor de secuencias de comandos, agregue la bandera al final del comando como se muestra a continuación:
sudo docker run --name mongo_example2 -d mongo --noscripting
Como otro ejemplo, para apagar el motor de secuencias de comandos y activar IPv6, ingrese lo siguiente:
sudo docker run --name mongo_example3 -d mongo --noscripting --ipv6
Cómo guardar datos MongoDB desde un contenedor Docker
Dado que MongoDB se ejecuta en un contenedor Docker, sus datos no persistirán cuando se salga (ya que guarda los datos en el directorio /data/db en el propio contenedor). Si necesita que los datos de MongoDB persistan, debe crear y montar un volumen Docker o montar un directorio desde su sistema host.
Agregar un volumen Docker a un contenedor MongoDB
Crear y agregar un volumen para que lo use el contenedor es sencillo si está familiarizado con Docker.
-
Cree un volumen Docker para que residan los datos ingresando lo siguiente:
sudo docker volume create mongo_volume
-
Luego crea una
docker run
comando para adjuntar el volumen al contenedor y asignarlo a/data/db
directorio contenedor ingresando:sudo docker run -it -v mongo_volume:/data/db --name mongo_example4 -d mongo
Montar un directorio de sistema host en un contenedor MongoDB Docker
Si desea que los datos persistan y acceda a los datos fuera de Docker, puede usar un directorio en su sistema host.
Para montar un directorio del sistema host:
-
Cree un directorio en su sistema (si no tiene uno que quiera usar) en el nivel raíz de su sistema ingresando:
sudo mkdir -p /mongo_data_directory
-
Luego ejecute una
docker run
comando para montar el directorio y asignarlo a/data/db
ingresando:sudo docker run -it -v /mongo_data_directory:/data/db --name mongo_example5 -d mongo
Lecturas adicionales
Aprender a usar MongoDB en Docker es vital para los flujos de trabajo de CI/CD y el desarrollo iterativo rápido. Continuar con parte de la información de MongoDB de Docker en Docker Hub es un excelente complemento para este artículo.
Para obtener más información sobre mongod
opciones que se pasarán en docker run
, revisa el mongod
Sección Componentes del paquete MongoDB del Manual de MongoDB.
Además, si planea actualizar a MongoDB Enterprise, consulte Instalar MongoDB Enterprise con Docker en el Manual de MongoDB para obtener instrucciones mongod
.
Más información
Es posible que desee consultar los siguientes recursos para obtener información adicional sobre este tema. Si bien estos se proporcionan con la esperanza de que sean útiles, tenga en cuenta que no podemos garantizar la precisión o la puntualidad de los materiales alojados externamente.
- MongoDB en Docker Hub