MongoDB - Utilizando o MongoDB de forma rápida e prática com docker compose
1. Cenário
Neste artigo vamos explorar o docker compose com o MongoDb. Vamos imaginar o seguinte cenário. Precisamos desenvolver uma API e realizar a persistência em um banco de dados Mongo. Anteriormente ao advento do docker, era necessário a instalação de todas as aplicações e serviços para utilizarmos o banco de dados, quem nunca sofreu com isso que atire a primeira pedra!
Agora, com a facilidade da utilização de conteiners, podemos “levantar” uma instância de Mongo (entre tantos outros bancos) apenas com um comando! Segue aqui alguns pontos importantes para a utilização do conteiner com o banco de dados:
- Fácil utilização sem a necessidade de instalações adicionais, basta termos o docker instalado em nossa estação de trabalho.
 - Velocidade de utilização, basta levantar um contêiner e pronto, seu banco de dados está pronto para utilização.
 - É possível inserirmos testes integrados no momento do deploy. Configuramos na esteira de deploy a execução dos serviços ou aplicações com a integração com o banco de dados. Isso conta com maior qualidade de código e maior cobertura de testes.
 
O foco aqui será para levantarmos o banco, mas quando tiver seu serviço ou aplicação, adicione o mesmo no arquivo docker compose para execução de todo o escopo em contêiner, enquanto em tempo de desenvolvimento faça a conexão de sua aplicação ou serviço diretamente ao contêiner.
1. Criando o arquivo docker compose
Na raiz da pasta de sua solução, crie um arquivo chamado docker-compose.yml. Para levantarmos o mongo, basta inserir o conteúdo abaixo no arquivo criado.
name: "example.mongo"
services:
  mongo:
    container_name: ex-mongo
    image: mongo
    restart: always
    ports:
      - 27017:27017
    volumes:
      - mongo-db-volume:/data/db
    environment:
      - MONGO_INITDB_DATABASE=test
      - MONGO_INITDB_ROOT_USERNAME=mongoadmin
      - MONGO_INITDB_ROOT_PASSWORD=secret
volumes:
  mongo-db-volume:
    external: false
Salve o arquivo, abra o terminal e execute o comando abaixo:
$ docker compose up
Com esta execução, estaremos deixando o nosso terminal exibindo os logs de interação com o mongo. Teremos um resultado semelhante a este:
Abrindo uma nova instância de seu terminal, vamos conferir o contêiner que está em execução com nossa parametrização:
Execute o código abaixo para listar os contêiners que estão em execução:
$ docker container ps
Teremos um resultado semelhante ao abaixo:
Para pararmos o contêiner e excluirmos o volume criado, basta executar o comando abaixo:
$ docker container down -v
Teremos um resultado semelhante ao abaixo:
Após a execução do comando, utilize o comando docker conteiner ps para certificar que o mesmo está parado. Para certificar se o volume foi excluído, utilize o comando docker image ls
2. Conectando ao nosso banco com o aplicativo MongoDB Compass
O MongoDB Compass é uma GUI gratuita para conexão com o MongoDb. Você pode ter mais informações e realizar o download neste link. Utilizaremos esta ferramenta para conectarmos na instência que acabamos de criar.
Abrindo a ferramenta, será apresentado uma área para a conexão.
A conexão padrão para o localhosté mongodb://localhost:27017. Iremos apenas adicionar as informações de autenticação que configuramos em nosso arquivo docker compose. Para inserir as informações de autenticação, clique em Advanced Connection Options e selecione a opção Username/Password. Iremos preencher conforme a imagem abaixo:
Após o preenchimento, basta clicar em Connect que a conexão deverá ser realizada com sucesso. O resultado será apresentado como a imagem abaixo:
Importante: So banco test só será criado após a inserção de uma primeira collection.
Este foi um artigo rápido com a intenção de facilitar e otimizar seu dia a dia. Teremos mais artigos para explorarmos o docker compose e o MongoDB.
Se você gostou do conteúdo, deixe um comentário ou uma reação para apoiar o projeto! Compartilhe com alguém e ajude a divulgar!
[]´s
Degas




