Editado 2 hace meses por ExtremeHow Equipo Editorial
DockerLinuxMongoDBBase de datosContenerizaciónDesarrolloVirtualizaciónImplementaciónConfiguraciónConfiguración
Traducción actualizada 2 hace meses
MongoDB es una popular base de datos NoSQL que permite una gestión de datos flexible y escalable. Docker, por otro lado, es una plataforma que permite ejecutar software en contenedores, asegurando que las aplicaciones puedan ejecutarse de manera consistente en cualquier plataforma. Usar Docker para configurar MongoDB en Linux combina la flexibilidad de MongoDB con las potentes capacidades de contenedorización de Docker. Esta guía te introducirá al proceso de configurar MongoDB en Docker en un entorno Linux. Cubriremos cada paso en detalle para asegurarnos de que puedas implementarlo con éxito.
Antes de comenzar a configurar MongoDB en Docker, asegúrate de tener lo siguiente:
Si Docker no está instalado en tu sistema Linux, puedes seguir estos pasos para instalarlo:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
Después de seguir estos pasos, Docker debería estar instalado correctamente en tu sistema Linux. Puedes verificar la versión instalada utilizando lo siguiente:
docker --version
Ahora que Docker está instalado, el siguiente paso es obtener la imagen de MongoDB desde Docker Hub. Docker Hub es una biblioteca basada en la nube donde los usuarios pueden encontrar imágenes para varios programas. Para obtener la imagen de MongoDB, usa el siguiente comando:
sudo docker pull mongo
Este comando descargará la última versión de MongoDB desde Docker Hub. Puedes especificar una versión particular agregando dos puntos (:) y el número de versión después de "mongo". Por ejemplo, para obtener la versión 4.4, usarías:
sudo docker pull mongo:4.4
Después de descargar la imagen de MongoDB, puedes crear y ejecutar un contenedor usando la imagen. Un contenedor es como una máquina virtual liviana que puede ejecutar diferentes aplicaciones. Ejecuta el siguiente comando para ejecutar un contenedor de MongoDB:
sudo docker run --name mongodb -d -p 27017:27017 mongo
Análisis del orden:
--name mongodb
: Asigna el nombre "mongodb" al contenedor.-d
: Ejecuta el contenedor en modo aislado, es decir, se ejecutará en segundo plano.-p 27017:27017
: Mapea el puerto 27017 de la máquina host al puerto 27017 del contenedor, que es el puerto predeterminado en el que escucha MongoDB.mongo
: Especifica la imagen de MongoDB a usar.Una vez que el contenedor de MongoDB está ejecutándose, debes verificar que todo esté configurado correctamente. Verifica el estado del contenedor de Docker usando lo siguiente:
sudo docker ps
Esto mostrará la lista de contenedores en ejecución, y también verás el contenedor de MongoDB entre ellos. Mostrará detalles como la identificación del contenedor, el nombre, la imagen utilizada y el puerto mapeado.
Puedes verificar esto aún más accediendo a MongoDB usando el shell de MongoDB. Primero, inicia sesión en el contenedor de MongoDB en ejecución:
sudo docker exec -it mongodb bash
Dentro del shell del contenedor, inicia el shell de MongoDB escribiendo lo siguiente:
mongo
Esto te dará un indicador del shell de MongoDB, lo que confirmará que MongoDB se está ejecutando dentro del contenedor Docker.
Por defecto, cualquier dato almacenado en un contenedor Docker no es persistente. Esto significa que si el contenedor se elimina, todos los datos creados dentro de él se perderán. Para persistir los datos, debes mapear un directorio en la máquina host a un directorio dentro del contenedor.
Para hacer esto, detén el contenedor de MongoDB:
sudo docker stop mongodb
Luego ejecuta un nuevo contenedor con el mapeo de volumen:
sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db mongo
Explicación de la nueva bandera:
-v /my/own/datadir:/data/db
: Mapea el directorio /data/db
dentro del contenedor a /my/own/datadir
en la máquina host.Reemplaza /my/own/datadir
con la ruta donde deseas guardar los datos de MongoDB en tu máquina host. Este directorio almacenará todos los datos de MongoDB, y persistirá incluso si eliminas el contenedor.
Ejecutar MongoDB con la configuración predeterminada puede no ser seguro para un entorno de producción. Aquí hay algunos pasos básicos para mejorar la seguridad.
Primero, inicia el shell de MongoDB y crea un usuario administrador:
mongo
Luego ve a la base de datos admin
:
use admin
Crea un usuario administrador ejecutando el siguiente comando. Asegúrate de reemplazar "username" y "password" con tu nombre de usuario y contraseña deseados:
db.createUser({ user: "username", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
Para activar la autenticación, necesitas editar el archivo de configuración. Sal del shell y detén el contenedor en ejecución:
exit
sudo docker stop mongodb
Inicia un nuevo contenedor de MongoDB con la "autenticación" habilitada:
sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db mongo --auth
Ahora, cada vez que te conectes a la base de datos, requerirá autenticación.
Para una configuración más avanzada, puedes proporcionar un archivo de configuración al iniciar el contenedor de MongoDB. Crea el archivo de configuración en la máquina host y pásaselo al contenedor utilizando el siguiente comando:
sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db -v /my/own/config:/etc/mongo mongo --config /etc/mongo/mongod.conf
Reemplaza /my/own/config
con el directorio donde se encuentra tu archivo mongod.conf
. Esto te permite personalizar configuraciones como conjuntos de réplicas, particionado y registro.
Configurar MongoDB en Docker para Linux proporciona una forma flexible y eficiente de gestionar la base de datos, con el beneficio añadido de la contenedorización de Docker. Esto asegura consistencia a través de los entornos y simplifica los procesos de implementación. Siguiendo estos pasos, podrás ejecutar y asegurar MongoDB de manera efectiva en Docker.
Las características de aislamiento de Docker te permiten crear y eliminar contenedores fácilmente, simplificando mucho las pruebas y la administración. Agregar seguridad, como la persistencia de datos y la autenticación, permite aprovechar de manera segura las características robustas de MongoDB en un entorno de producción. Recuerda que con la contenedorización, saber cómo manejar el almacenamiento de datos y la configuración puede aumentar enormemente el rendimiento y la fiabilidad de tu configuración de base de datos.
Si encuentras algo incorrecto en el contenido del artículo, puedes