docker-compose MongoDB
Gera um docker-compose pronto para MongoDB, com usuário e senha de root, a porta 27017 publicada e volume persistente. O nome do banco você cria depois de subir.
YAML
—
Subindo um MongoDB local sem decorar YAML
Você quer um Mongo rodando em cinco minutos para testar a aplicação, sem instalar nada na máquina, e sempre esquece o nome exato das variáveis que o container espera. Errar uma letra em MONGO_INITDB_ROOT_USERNAME resulta num banco que sobe sem autenticação nenhuma, e você só descobre quando alguém conecta sem senha. Aqui você informa a versão da imagem, o usuário e a senha do root, e o YAML do serviço sai pronto.
O detalhe que pega muita gente: as variáveis MONGO_INITDB_ROOT_USERNAME e MONGO_INITDB_ROOT_PASSWORD só são lidas na primeira inicialização, quando o diretório de dados está vazio. Se o volume mdata já existe, trocar a senha no compose não muda nada. Precisa derrubar com docker compose down -v. E o root nasce no banco admin, então a conexão pede authSource: mongodb://root:rootpass@localhost:27017/?authSource=admin
O que sai daqui é o básico: serviço, imagem, credencial de root, porta 27017 publicada e volume nomeado. Nome do banco inicial, replica set e scripts em docker-entrypoint-initdb.d ficam por sua conta. Senha com dois-pontos seguido de espaço, cerquilha ou aspas quebra o YAML, então coloque entre aspas ou mova para um arquivo .env. E publicar 27017:27017 abre o banco em todas as interfaces da máquina. Tudo é montado no navegador.
Perguntas frequentes
Mudei a senha no compose e o Mongo continua aceitando a antiga. Por quê?
Qual string de conexão usar com esse compose?
Dá para usar isso em produção?
Ferramentas Relacionadas
Docker Run → Compose
Converta um comando docker run para o equivalente docker-compose.yml automaticamente. Mapeia portas, volumes, variáveis de ambiente, redes e restart policies.
docker-compose MySQL
Gera um docker-compose pronto para MySQL, com a senha de root, a porta 3306 publicada e volume persistente. Escolha a tag da imagem e suba o banco local.
docker-compose Redis
Gera um docker-compose pronto para Redis, com a porta 6379 publicada e volume persistente. Escolha a tag da imagem e suba seu cache ou broker local com um docker compose up.