- Esta versão da documentação foi arquivada e não é mais suportada. Consulte adocumentação atual do para saber como atualizar sua versão da Atlas CLI.
Este exemplo completo do Docker Compose configura um cluster MongoDB Atlas local com dados persistentes. Revise o arquivo Docker Compose completo e cada componente para entender sua finalidade e configuração. Para saber mais, consulte Criar um sistema local do Atlas com Docker.
Arquivo de composição do Docker
O exemplo seguinte cria um cluster local do Atlas utilizando a imagem mongodb/mongodb-atlas-local
. O arquivo configura a rede, monta os volumes de dados corretos para semear o banco de dados , os dados persistentes e os índices do Atlas Search .
1 services: 2 mongodb: 3 image: mongodb/mongodb-atlas-local 4 hostname: mongodb 5 environment: 6 - MONGODB_INITDB_ROOT_USERNAME=user 7 - MONGODB_INITDB_ROOT_PASSWORD=pass 8 ports: 9 - 27017:27017 10 volumes: 11 - ./init:/docker-entrypoint-initdb.d 12 - db:/data/db 13 - configdb:/data/configdb 14 - mongot:/data/mongot 15 volumes: 16 db: 17 configdb: 18 mongot:
Utilize as seguintes informações para provisionar seu agrupamento do Atlas local com seus próprios dados e persistir sua configuração e dados.
Estrutura do arquivo
O arquivo Docker Compose tem os seguintes parâmetros principais:
services
define os containers a serem executados. Neste exemplo, um único serviço denominadomongodb
define o serviço MongoDB . Você pode ter outros serviços necessários para que seu aplicação completo seja executado.volumes
define os locais de armazenamento persistentes que você pode compartilhar entre contêineres. Este exemplo mostra os locais de armazenamento persistentes necessários para o serviço MongoDB operar.
Configuração do serviço
Imagem
image: mongodb/mongodb-atlas-local
Obrigatório
Este parâmetro define a imagem do MongoDB Atlas local. Esta definição utiliza a versão mais recente da imagem e é equivalente ao uso da :latest
marcação . Se sua organização exigir que você use uma construção de imagem específica, você poderá @sha256:<digest>
anexar. Se você quiser usar uma versão específica do MongoDB com as atualizações mais recentes do sistema operacional, use as marcações de número da versão. Por exemplo, mongodb/mongodb-atlas-local:8.0.6
nome de anfitrião
hostname: mongodb
Obrigatório
Este parâmetro define o nome do host do container. Você deve especificar isso corretamente para que o conjunto de réplicas local funcione. Este parâmetro é necessário para garantir a comunicação entre os diferentes serviços dentro da mesma rede de contêineres do Docker. Você pode referir-se a este container com o mesmo nome de host, mongodb
.
Configuração do ambiente
Autenticação
environment: - MONGODB_INITDB_ROOT_USERNAME=user - MONGODB_INITDB_ROOT_PASSWORD=pass
Recomendado
Os parâmetros environment
destacados definem o nome de usuário e a senha raiz inicial do Atlas cluster local. Para simplificar, neste exemplo, as credenciais são definidas no próprio arquivo Docker Compose, mas você pode abstrair as credenciais em uma variável de ambiente.
Exploração madeireira
environment: - MONGODB_INITDB_ROOT_USERNAME=user - MONGODB_INITDB_ROOT_PASSWORD=pass - MONGOT_LOG_FILE=/dev/stderr - RUNNER_LOG_FILE=/dev/stderr
Opcional
Os parâmetros environment
destacados definem o registro para ajudar a diagnosticar qualquer problema. O mongot
, que fornece os recursos do Atlas Search , gera o MONGOT_LOG_FILE
. Este exemplo gera os logs do mongot
para o diretório stderr
. O serviço de executor gera o RUNNER_LOG_FILE
. O serviço de executor monitora o processo que cria o mongod
e configura a integração com mongot
. Este exemplo gera os registros do executor para o diretório stderr
.
Volumes
Os volumes persistem os dados e a configuração nas reinicializações do container.
Inicialização
volumes: - ./init:/docker-entrypoint-initdb.d
Condicional
O parâmetro volumes
realçado monta o diretório init
local no diretório de inicialização do container. Normalmente, o diretório init
é colocado no projeto e, quando você executa o docker-compose up
, o processo pesquisa quaisquer scripts de inicialização neste diretório. Os tipos de arquivo suportados incluem:
.js
Scripts de shell do MongoDB.sh
Scripts bash
Por exemplo, quando você coloca o seguinte script na pasta init
:
O script recupera um conjunto de dados de amostra de exemplo .
Confirma o conjunto de dados baixado.
Usa,
mongorestore
que a imagem do container local do MongoDB Atlas fornece, para restaurar o arquivo no novo cluster local do Atlas .Confirma os dados carregados.
init/init.sh !/bin/bash curl -O https://atlas-education.s3.amazonaws.com/sampledata.archive echo "Sample data downloaded." mongorestore --uri "$CONNECTION_STRING" --archive=./sampledata.archive echo "Sample data loaded successfully."
Observação
Connection string
Como construir sua string de conexão durante o processo de sementeira pode ser um desafio, especialmente quando você alterna entre sua máquina local e a rede Docker, a variável de ambiente $CONNECTION_STRING
é fornecida automaticamente durante o processo de sementeira.
Dados
volumes: - ./init:/docker-entrypoint-initdb.d - db:/data/db - configdb:/data/configdb - mongot:/data/mongot volumes: db: configdb: mongot:
Condicional
O MongoDB armazena seus dados no diretório /data/db
por padrão. Neste arquivo Docker Compose, o diretório /data/db
é então mapeado para o volume db
para o serviço MongoDB . Os parâmetros volumes
no final do arquivo Docker Compose declaram os volumes que outros serviços podem usar, incluindo o volume db
mapeado no serviço mongodb. O volume db
atua como um local de armazenamento fora do container, preservando os dados entre as reinicializações do container.
Configuração
volumes: - ./init:/docker-entrypoint-initdb.d - db:/data/db - configdb:/data/configdb - mongot:/data/mongot volumes: db: configdb: mongot:
Condicional
Por padrão, o MongoDB armazena seus dados de configuração no diretório /data/configdb
, que persiste da mesma forma que os dados armazenados.
Atlas Search ()mongot
volumes: - ./init:/docker-entrypoint-initdb.d - db:/data/db - configdb:/data/configdb - mongot:/data/mongot volumes: db: configdb: mongot:
Condicional
A imagem local do MongoDB Atlas () mongodb/mongodb-atlas-local
vem mongot
com, que fornece os recursos Atlas Search e Atlas Vector Search . Por padrão, mongot
armazena índices no /data/mongot
diretório. Esse volume é mapeado, montado e seus dados persistem entre as execuções da mesma forma que a configuração e os dados armazenados.
Verifique se os processos estão íntegros
A implementação local do Atlas simplifica a configuração do processo do MongoDBmongod
() e dos recursos de pesquisamongot)
(. Durante a inicialização, estes processos devem ser iniciados e reiniciados. Em alguns casos, o container pode estar em execução, mas o processo necessário não está pronto A imagem local do MongoDB Atlas também fornece uma verificação de integridade.
Você pode usar a verificação de integridade para garantir que os processos de recurso do MongoDB e de pesquisa, bem como quaisquer scripts de inicialização, estejam totalmente prontos.
Em seus scripts, inclua o seguinte código:
timeout 120 bash -c 'until [ "$(docker inspect --format='\''{{.State.Health.Status}}'\''<container-name>)" = "healthy" ]; do sleep 2; done'
Você também pode fazer uma verificação de integridade ao usar o Docker Compose.
Usar Docker Compose
Para iniciar o serviço, execute o seguinte comando:
docker-compose up
Você pode anexar -d
para executar o serviço no modo independente.
Para interromper o serviço, execute o seguinte comando:
docker-compose down
Você pode anexar -v
para remover os volumes e limpar os dados. Use essa opção se não quiser persistir alterações de dados ou configuração, ou se quiser garantir que esteja reiniciando a partir de um novo container.
Para verificar se o serviço está íntegro ao executar docker-compose up
, adicione o parâmetro condition: service_healthy
:
api: depends_on: atlas_local: condition: service_healthy
Para saber mais,consulte Criar uma implantação de Atlas local com Docker.
Feedback
Para discutir clusters locais do Atlas , consulte o fórum da comunidade de desenvolvedores MongoDB . Para obter ajuda, fornecer feedback ou solicitar recursos, consulte o Mecanismo de Feedback do MongoDB .