GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Configurar MongoDB en Docker

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

  1. Familiarícese con nuestra guía de inicio y complete los pasos para actualizar su Linode.

  2. 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.

  3. 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
Nota

Esta guía está escrita para un usuario no root. Los comandos que requieren privilegios elevados tienen el prefijo sudo . Si no está familiarizado con sudo 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:

  1. 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 .
  2. 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
  3. 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
    
  4. 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

  1. Ingrese lo siguiente para obtener el aviso de bash dentro del contenedor:

    sudo docker exec -it mongo_example bash
    
  2. 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 legado mongo shell ha quedado obsoleto en MongoDB v5.0, pero aún se puede acceder a él como una alternativa a mongosh .

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.

  1. Cree un volumen Docker para que residan los datos ingresando lo siguiente:

    sudo docker volume create mongo_volume
    
  2. 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:

  1. 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
    
  2. 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

Docker
  1. Estibador

  2. Introducción a Docker

  3. Guía completa para Rocket.Chat de alojamiento propio con Docker

  4. Cómo configurar el acceso remoto a Docker Daemon

  5. Detener conjunto de réplicas MongoDB

Docker para Mac:la guía de instalación completa

Cómo configurar un contenedor Apache Docker

Cómo configurar Docker en WSL [paso a paso]

Guía completa para eliminar imágenes de Docker

Cómo configurar el acceso remoto a Docker Daemon [Guía detallada]

Guía completa de Ghost CMS con alojamiento propio con Docker