Editado 2 meses atrás por ExtremeHow Equipe Editorial
DockerLinuxMongoDBBanco de DadosConteinerizaçãoDesenvolvimentoVirtualizaçãoImplantaçãoConfiguraçãoConfiguração
Tradução atualizada 2 meses atrás
O MongoDB é um banco de dados NoSQL popular que permite gerenciamento de dados flexível e escalonável. O Docker, por outro lado, é uma plataforma que permite que o software seja executado em contêineres, garantindo que os aplicativos possam ser executados de forma consistente em qualquer plataforma. Usar o Docker para configurar o MongoDB no Linux combina a flexibilidade do MongoDB com as poderosas capacidades de conteinerização do Docker. Este guia irá introduzi-lo ao processo de configurar o MongoDB no Docker em um ambiente Linux. Cobriremos cada passo em detalhe para garantir que você possa implementá-lo com sucesso.
Antes de começar a configurar o MongoDB no Docker, certifique-se de ter o seguinte:
Se o Docker não estiver instalado em seu sistema Linux, você pode seguir os seguintes passos para instalá-lo:
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
Depois de seguir estes passos, o Docker deve estar instalado com sucesso em seu sistema Linux. Você pode verificar a versão instalada usando o seguinte comando:
docker --version
Agora que o Docker está instalado, o próximo passo é puxar a imagem do MongoDB do Docker Hub. O Docker Hub é uma biblioteca baseada em nuvem onde os usuários podem encontrar imagens para vários softwares. Para puxar a imagem do MongoDB, use o seguinte comando:
sudo docker pull mongo
Este comando irá baixar a versão mais recente do MongoDB do Docker Hub. Você pode especificar uma versão particular adicionando dois pontos (:) e o número da versão após "mongo". Por exemplo, para puxar a versão 4.4, você usaria:
sudo docker pull mongo:4.4
Depois que a imagem do MongoDB for baixada, você pode criar e executar um contêiner usando a imagem. Um contêiner é como uma máquina virtual leve que pode executar diferentes aplicativos. Execute o seguinte comando para executar um contêiner MongoDB:
sudo docker run --name mongodb -d -p 27017:27017 mongo
Análise do comando:
--name mongodb
: Atribui o nome "mongodb" ao contêiner.-d
: Executa o contêiner em modo isolado, ou seja, ele será executado em segundo plano.-p 27017:27017
: Mapeia a porta 27017 da máquina host para a porta 27017 do contêiner, que é a porta padrão na qual o MongoDB escuta.mongo
: Especifica a imagem do MongoDB a ser usada.Uma vez que o contêiner do MongoDB estiver em execução, você deve verificar se tudo está configurado corretamente. Verifique o status do contêiner Docker usando o seguinte comando:
sudo docker ps
Isso exibirá a lista de contêineres em execução, e você verá o contêiner MongoDB entre eles. Ele mostrará detalhes como ID do contêiner, nome, imagem usada e porta mapeada.
Você pode verificar ainda mais acessando o MongoDB usando o shell do MongoDB. Primeiro, entre no contêiner MongoDB em execução:
sudo docker exec -it mongodb bash
Dentro do shell do contêiner, inicie o shell do MongoDB digitando o seguinte:
mongo
Isso dará um prompt do shell MongoDB, o que confirmará que o MongoDB está sendo executado dentro do contêiner Docker.
Por padrão, quaisquer dados armazenados em um contêiner Docker são não persistentes. Isso significa que, se o contêiner for excluído, todos os dados criados dentro dele serão perdidos. Para persistir os dados, você deve mapear um diretório na máquina host para um diretório dentro do contêiner.
Para fazer isso, pare o contêiner MongoDB:
sudo docker stop mongodb
Em seguida, execute um novo contêiner com o mapeamento de volume:
sudo docker run --name mongodb -d -p 27017:27017 -v /meu/proprio/datadir:/data/db mongo
Explicação da nova flag:
-v /meu/proprio/datadir:/data/db
: Mapeia o diretório /data/db
dentro do contêiner para /meu/proprio/datadir
na máquina host.Substitua /meu/proprio/datadir
pelo caminho onde você deseja salvar os dados do MongoDB em sua máquina host. Este diretório armazenará todos os dados do MongoDB e ele persistirá mesmo que você exclua o contêiner.
Executar o MongoDB com as configurações padrão pode não ser seguro para um ambiente de produção. Aqui estão algumas etapas básicas para melhorar a segurança.
Primeiro, inicie o shell do MongoDB e crie um usuário admin:
mongo
Em seguida, vá para o banco de dados admin
:
use admin
Crie um usuário admin executando o seguinte comando. Certifique-se de substituir "username" e "password" pelo nome de usuário e senha desejados:
db.createUser({ user: "username", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
Para ativar a autenticação, você precisa editar o arquivo de configuração. Saia do shell e pare o contêiner em execução:
exit
sudo docker stop mongodb
Inicie um novo contêiner MongoDB com "auth" habilitado:
sudo docker run --name mongodb -d -p 27017:27017 -v /meu/proprio/datadir:/data/db mongo --auth
Agora, sempre que você se conectar ao banco de dados, será necessário autenticação.
Para uma configuração mais avançada, você pode fornecer um arquivo de configuração ao iniciar o contêiner MongoDB. Crie o arquivo de configuração na máquina host e passe-o para o contêiner usando o seguinte comando:
sudo docker run --name mongodb -d -p 27017:27017 -v /meu/proprio/datadir:/data/db -v /meu/proprio/config:/etc/mongo mongo --config /etc/mongo/mongod.conf
Substitua /meu/proprio/config
pelo diretório onde seu arquivo mongod.conf
está localizado. Isso permite personalizar configurações como conjuntos de réplicas, sharding e logging.
Configurar o MongoDB no Docker para Linux oferece uma maneira flexível e eficiente de gerenciar o banco de dados, com o benefício adicional do conteinerização do Docker. Isso garante consistência entre ambientes e simplifica os processos de implantação. Ao seguir essas etapas, você poderá executar e proteger o MongoDB no Docker de forma eficaz.
Os recursos de isolamento do Docker permitem criar e excluir contêineres facilmente, tornando o teste e o gerenciamento muito mais simples. Adicionar segurança como persistência de dados e autenticação permite que os recursos robustos do MongoDB sejam aproveitados com segurança em um ambiente de produção. Lembre-se de que, com a conteinerização, saber como lidar com o armazenamento de dados e configuração pode aumentar bastante o desempenho e a confiabilidade de sua configuração de banco de dados.
Se você encontrar algo errado com o conteúdo do artigo, você pode