Passo a passo para subir o MongoDB no Docker
O MongoDB é um dos bancos de dados NoSQL mais populares do mercado, bastante utilizado por conta de sua flexibilidade e escalabilidade. Se você quer testar, estudar ou rodar o MongoDB rapidamente, usar contêineres Docker é uma ótima opção, pois permite criar ambientes isolados de forma fácil e reprodutível.
Neste guia, mostrarei um passo a passo simples para subir o MongoDB em um container Docker, configurando persistência de dados e acessos básicos.
1. Pré-requisitos
-
Docker instalado: Certifique-se de ter o Docker instalado em sua máquina. Você pode verificar usando o comando:
docker --version
Se você ainda não tem o Docker instalado, você pode seguir as instruções oficiais de instalação para a sua plataforma: https://docs.docker.com/engine/install/.
-
Docker Hub acessível: Terá que fazer o login caso use imagens privadas, mas para a imagem pública do MongoDB, basta ter acesso à internet.
2. Baixando a imagem do MongoDB
O primeiro passo é puxar a imagem oficial do MongoDB no Docker Hub. Podemos usar o comando abaixo:
docker pull mongo
Esse comando baixa a última versão estável do MongoDB disponibilizada pela equipe oficial no Docker Hub.
Se você precisar de uma versão específica, basta adicionar :versão
ao final, por exemplo:
docker pull mongo:6.0
3. Criando um container do MongoDB
Para criar e iniciar um container do MongoDB, podemos usar o comando docker run
. Abaixo está um exemplo básico:
docker run -d \ --name meu-mongo \ -p 27017:27017 \ mongo
-
-d
: Significa “detached mode”, ou seja, o container rodará em segundo plano. -
--name
: Define um nome para o container, facilitando a identificação (aqui, escolhi “meu-mongo”). -
-p 27017:27017
: Faz o mapeamento de portas, permitindo acesso localmente na porta 27017. -
mongo
: É o nome da imagem que rodaremos (a mais recente que puxamos).
Assim que o container iniciar, você já terá um MongoDB executando localmente na porta 27017.
4. Persistindo dados com um volume
O MongoDB precisa salvar dados em disco para que possamos reiniciar o container sem perder informações. Para manter esses dados de forma persistente, vamos mapear um volume local. Basta adicionar a opção -v
ao comando:
docker run -d \ --name meu-mongo \ -p 27017:27017 \ -v /caminho/local/para/dados:/data/db \ mongo
-
-v /caminho/local/para/dados:/data/db
: Define que tudo que for salvo dentro de/data/db
(local padrão do MongoDB dentro do container) será escrito também em nossa máquina local, evitando perda de dados.
EXEMPLO DE CAMINHO LOCAL EM WINDOWS:
C:\Users\SeuUsuario\mongo-data
EXEMPLO DE CAMINHO LOCAL EM LINUX OU MACOS:
/home/seuusuario/mongo-data
5. Verificando se o container está em execução
Para verificar se o container está rodando corretamente, execute:
docker ps
Você deve ver algo como:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 123456789abc mongo "docker-entrypoint.s…" 29 seconds ago 28 seconds ago 0.0.0.0:27017->27017/tcp meu-mongo
6. Conectando no MongoDB
Para testar o acesso, você pode usar:
6.1. Mongo Shell dentro do próprio container
docker exec -it meu-mongo mongosh
Em seguida, pode rodar os seguintes comandos como:
Comando:
show dbs
Resultado:
admin 8.00 KiB
config 12.00 KiB
local 8.00 KiB
Comando:
use blog
Resultado:
switched to db blog
Comando:
db.autor.insertOne({ nome: "Gaspar", idade: 30 })
Resultado:
{
acknowledged: true,
insertedId: ObjectId('6776d0f31e588a123efc0421')
}
Comando:
db.autor.find()
Resultado:
[
{
_id: ObjectId('6776d0f31e588a123efc0421'),
nome: 'Gaspar',
idade: 37
}
]
6.2. Cliente MongoDB na sua máquina
Se você tiver instalado o mongosh
localmente, basta conectar usando:
mongosh "mongodb://localhost:27017"
7. Parando e removendo o container
Se precisar parar o container, utilize:
docker stop meu-mongo
E para removê-lo completamente:
docker rm meu-mongo
Se você não estiver usando volumes persistentes (ou seja, sem mapear /data/db
para o host), remover o container pode resultar em perda de dados gravados nele.
8. Exemplo com Docker Compose (Opcional)
Para quem prefere definir tudo em um arquivo docker-compose.yml
, eis um exemplo:
version: '3.8' services: mongodb: image: mongo container_name: meu-mongo ports: - "27017:27017" volumes: - ./data:/data/db
Depois, basta executar:
docker-compose up -d
Esse arquivo cria um serviço chamado mongodb
, mapeia a porta 27017 e também cria um volume persistente na pasta ./data
.
Conclusão
Executar o MongoDB em contêineres Docker é rápido e prático, além de facilitar o isolamento do ambiente. Nesse guia, você aprendeu a:
-
Baixar a imagem oficial do MongoDB.
-
Criar um container com portas expostas.
-
Configurar volumes para persistência de dados.
-
Testar a conexão ao banco localmente.
Com esse passo a passo, você já tem tudo o que precisa para criar um ambiente de desenvolvimento com MongoDB em minutos. Agora é só começar a explorar, criar coleções e armazenar dados de forma rápida e segura!