Pular para o conteúdo principal

Executando o MongoDB no Docker: Um guia completo com exemplos

Este guia mostra como rodar o MongoDB no Docker, falando sobre como fazer implantações rápidas pela linha de comando e configurações completas do Docker Compose. É perfeito pra desenvolvedores que querem hospedar por conta própria ou experimentar localmente sem precisar ir direto pra hospedagem em nuvem.
Atualizado 14 de jul. de 2025  · 5 min lido

Então você quer hospedar o MongoDB por conta própria ou começar a brincar com ele em um ambiente local? Se você não quer começar direto no MongoDB Atlas, tem algumas opções pra começar, tipo usar containers com o Docker. 

Usar o Docker é uma boa ideia pra gerenciar sua instância do MongoDB, porque não leva mais de um minuto e é fácil de manter ou mudar de computador.

Neste artigo, vamos ver algumas abordagens para implantar o MongoDB com o Docker e explorar algumas dicas e truques ao longo do caminho.

O que você precisa saber antes de começar

Para acompanhar este tutorial, você precisa ter o Docker Engine instalado no seu computador. Isso pode ser no macOS, Windows ou Linux. Você não precisa instalar explicitamente o Docker Desktop, mas ele pode facilitar sua experiência com o Docker, dependendo do sistema operacional que você estiver usando. 

Tô usando o Docker Engine pelo Rancher Desktop no macOS, por exemplo, e tá tudo funcionando bem.

Para aprimorar seus conhecimentos sobre o Docker, vale a pena conferir o curso “ ” (Docker para iniciantes) no site . Um guia prático sobre contêineres para se atualizar sobre o básico.

Baixando uma imagem do Docker do MongoDB

Antes de começar a rodar o MongoDB em um contêiner Docker, você precisa baixar uma imagem que atenda às suas necessidades. Na linha de comando, dá um olhada nisso:

docker pull mongodb/mongodb-community-server:latest

O comando acima vai baixar a imagem oficial do MongoDB Community Edition (CE) com a tag “latest”. 

É importante notar que mongodb/mongodb-community-server e mongodb/mongodb-enterprise-server são imagens Docker oficiais mantidas pela MongoDB. Todas as outras imagens são mantidas pela comunidade externa e podem dar resultados diferentes ou inesperados.

Depois de baixar a imagem, dá pra ver as opções de implantação.

Executando o MongoDB como um contêiner isolado com o comando Docker Run

A maneira mais rápida de instalar o MongoDB com o Docker é só usar o comando “ docker run ” com alguns parâmetros de configuração. Por exemplo, você pode fazer o seguinte na linha de comando:

docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=nraboy -e MONGO_INITDB_ROOT_PASSWORD=password1234 --name mongodb mongodb/mongodb-community-server:latest

O comando acima vai pegar nossa imagem e implantá-la como um contêiner chamado “MongoDB”. O contêiner vai ter uma porta mapeada, o que significa que o host vai poder interagir com ele na porta “27017”. As informações de autenticação raiz também estão definidas neste exemplo, mas dependendo das suas necessidades de implantação, você pode usar Docker Secrets ou outra forma protegida para passar informações confidenciais.

No exemplo acima, todos os dados ficam guardados dentro do contêiner. Os dados do MongoDB, que incluem bancos de dados, coleções e até documentos, só vão ficar guardados enquanto aquele contêiner específico existir. Pode ser legal pra testes, mas muitas vezes você vai querer que os dados do MongoDB fiquem guardados de um jeito confiável no Docker. Para resolver isso, você deve criar um volume Docker usando o seguinte comando:

docker volume create mongodb

Para dizer ao seu contêiner para usar esse volume, você pode alterar seu comando de implantação para ficar mais parecido com o seguinte:

docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=nraboy -e MONGO_INITDB_ROOT_PASSWORD=password1234 -v mongodb:/data/db --name mongodb mongodb/mongodb-community-server:latest

Repara que, dessa vez, estamos dizendo qual volume usar. Quando você usa um volume, pode ter certeza de que seus dados vão continuar lá mesmo depois de encerrar ou atualizar seu contêiner.

Com o MongoDB rodando dentro de um contêiner Docker, você pode se conectar usando mongodb://nraboy:password1234@localhost:27017 como string de conexão a partir de uma ferramenta da sua escolha.

Incluindo o MongoDB no seu stack ou projeto com o Docker Compose

Se você está pensando em usar o MongoDB com um projeto específico, também gerenciado com o Docker, provavelmente faz sentido gerenciar o MongoDB com uma configuração do Docker Compose. Essas configurações são frequentemente usadas para criar uma área restrita para seus projetos, muitas vezes chamada de pilhas.

Crie um arquivo chamado “ docker-compose.yml ” em algum lugar no seu computador com o seguinte conteúdo:

services:
    mongodb:
        image: mongodb/mongodb-community-server:latest
        container_name: mongodb
        restart: unless-stopped
        ports:
            - "27017:27017"
        volumes:
            - mongodb:/data/db
        environment:
            MONGO_INITDB_ROOT_USERNAME: nraboy
            MONGO_INITDB_ROOT_PASSWORD: password1234

volumes:
    mongodb:
        external: true

A configuração acima usa informações que já vimos no comando de linha de comando singular. Assim como no outro método, a gente espera que você já tenha criado um volume mongodb pra ser gerenciado pelo Docker. Mais uma vez, se precisar fazer isso, execute o seguinte comando:

docker volume create mongodb

Claro, você pode gerenciar seus volumes do Docker da maneira que achar melhor. Criar um volume é só uma das várias opções.

Com a linha de comando no mesmo diretório de trabalho que o arquivo “ docker-compose.yml ”, dá um comando assim:

docker compose up -d

O comando acima inicia sua pilha no modo destacado. 

Você pode ver se tá tudo certo tentando conectar na sua instância com uma ferramenta como o MongoDB Compass, um dos drivers de linguagem como o Node.js ou pelo MongoDB Shell. 

Se você seguiu o exemplo direitinho, sua string de conexão vai ser mongodb://nraboy:password1234@localhost:27017, mas dependendo de como você fez, pode ser diferente.

Para desligar sua instância do MongoDB, execute o seguinte na linha de comando com sua configuração YAML no mesmo diretório de trabalho:

docker compose down

Como estamos usando um volume externo, da próxima vez que você iniciar o contêiner, tudo continuará persistente.

Conclusão

O Docker facilita o trabalho com o MongoDB em um ambiente local ou auto-hospedado. Você não precisa se preocupar com as configurações gerais do sistema operacional ou com a experiência que terá ao alternar entre um computador e outro. Você vai ter uma experiência consistente sempre. 

Para dar um passo adiante, vale a pena aprender a criar um banco de dados no MongoDB.

Torne-se um engenheiro de dados

Torne-se um engenheiro de dados por meio do aprendizado avançado de Python
Comece a aprender de graça

Perguntas frequentes

Posso rodar vários contêineres MongoDB ao mesmo tempo com o Docker?

Sim, você pode rodar vários contêineres MongoDB, desde que cada um esteja mapeado para uma porta diferente ou rode em uma rede Docker separada pra evitar conflitos.

Como faço backup dos dados de um contêiner MongoDB no Docker?

Para fazer backup dos dados, você pode usar docker cp para extrair arquivos do volume ou usar mongodump dentro do contêiner. Os volumes persistentes também ajudam a manter os dados entre as sessões.

É seguro guardar as senhas do MongoDB no arquivo Docker Compose?

Não é o ideal. Em vez disso, use Docker Secrets ou arquivos de variáveis de ambiente (.env) que não fazem parte do controle de versão para cuidar das credenciais importantes de forma segura.

O MongoDB funciona bem no Docker no Windows?

Sim, o MongoDB funciona bem no Docker no Windows, macOS e Linux, principalmente quando você usa o WSL 2 ou o Docker Desktop para Windows pra garantir a compatibilidade.

Posso usar o MongoDB com o Docker em produção?

Sim, mas é melhor configurar uma rede, volumes de armazenamento, autenticação e backups certinhos antes de usar o MongoDB Dockerizado num ambiente de produção.

Como faço pra conectar ao MongoDB no Docker de outro contêiner?

Use o Docker Compose e chame o contêiner do MongoDB pelo nome do serviço como nome do host. Isso permite a comunicação entre serviços na mesma rede.

Preciso instalar o MongoDB localmente se usar o Docker?

Não. O Docker roda o MongoDB em um ambiente em contêiner, então você não precisa instalar o MongoDB diretamente na sua máquina host.

Posso usar o MongoDB Compass com uma instância do MongoDB no Docker?

Claro que sim. É só usar a string de conexão certa (por exemplo, mongodb://user:pass@localhost:27017) pra conectar o MongoDB Compass ao seu contêiner local.

Como posso monitorar o desempenho do MongoDB no Docker?

Você pode integrar ferramentas como mongostat, mongotop ou soluções de monitoramento externas, como Prometheus e Grafana, para acompanhar o desempenho dentro do Docker.

Os meus dados do MongoDB vão ficar guardados num contêiner Docker?

Desde que você tenha escolhido mapear o diretório do contêiner para um volume no seu computador host, os dados devem continuar lá sem problemas entre atualizações e inicializações.

Devo usar o Docker ou o MongoDB Atlas?

Na maioria dos casos, é melhor usar o MongoDB Atlas por causa dos recursos que ele tem, do preço e da facilidade de usar, mas o MongoDB pelo Docker também é uma opção legal.

Preciso usar o Docker Desktop com o MongoDB?

O Docker Desktop facilita o trabalho com o Docker na maioria das vezes, mas não é obrigatório. A maioria das distribuições Linux já vem com o Docker Engine, e outras interfaces, tipo o Rancher Desktop, também funcionam.


Nic Raboy's photo
Author
Nic Raboy

Nic Raboy é Líder de Relações com Desenvolvedores na MongoDB, onde lidera uma equipe de desenvolvedores Python, Java, C# e PHP que criam conteúdo incrível para ajudar os desenvolvedores a serem bem-sucedidos na inclusão do MongoDB em seus projetos. Ele tem experiência com Golang e JavaScript e escreve com frequência sobre muitas de suas aventuras de desenvolvimento.

Tópicos

Aprenda mais sobre o MongoDB com esses cursos!

Curso

Introduction to MongoDB in Python

3 h
22.2K
Learn to manipulate and analyze flexibly structured data with MongoDB.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

O guia completo da certificação Docker (DCA) para 2024

Libere seu potencial no Docker e na ciência de dados com nosso guia abrangente. Explore as certificações do Docker, os caminhos de aprendizado e as dicas práticas.
Matt Crabtree's photo

Matt Crabtree

8 min

blog

Jupyter e R Markdown: Notebooks com R

Saiba como instalar, executar e usar o R com o Jupyter Notebook e o R Notebook do RStudio, incluindo dicas e alternativas
Karlijn Willems's photo

Karlijn Willems

15 min

Tutorial

Como instalar e configurar o MySQL no Docker

Saiba como instalar e configurar o banco de dados MySQL dentro de contêineres do Docker. O tutorial inclui conceitos como conexão com servidores MySQL, execução de clientes MySQL para conexão com contêineres e assim por diante.
Bex Tuychiev's photo

Bex Tuychiev

Tutorial

Tutorial do MySQL: Um guia abrangente para iniciantes

Descubra o que é o MySQL e como começar a usar um dos sistemas de gerenciamento de banco de dados mais populares.
Javier Canales Luna's photo

Javier Canales Luna

Tutorial

Desenvolvimento de back-end em Python: Um guia completo para iniciantes

Este guia completo ensina a você os fundamentos do desenvolvimento de back-end em Python. Aprenda conceitos básicos, estruturas e práticas recomendadas para você começar a criar aplicativos da Web.
Oluseye Jeremiah's photo

Oluseye Jeremiah

Tutorial

Introdução aos acionadores SQL: Um guia para desenvolvedores

Saiba como usar os acionadores SQL para automatizar tarefas, manter a integridade dos dados e melhorar o desempenho do banco de dados. Experimente exemplos práticos como os comandos CREATE, ALTER e DROP no MySQL e no Oracle.
Oluseye Jeremiah's photo

Oluseye Jeremiah

Ver maisVer mais