Este tutorial mostra como criar uma implantação local do Atlas com Docker. Este tutorial descreve como implantar um conjunto de réplicas de nó único com Docker. Para obter um exemplo completo e detalhado do Docker Compose, consulte Exemplo do Docker Compose.
Antes de começar
necessário:
O Docker está instalado e em execução no seu computador local.
Para macOS ou Windows, instale o Docker Desktop v4.31 ou posterior.
Para Linux, instale o Docker mecanismo v27.0 ou posterior.
Seu computador tem pelo menos 2 GB de RAM livre e 2 núcleos de CPU.
A porta que você planeja usar (padrão: 27017) está disponível em
localhost.
Recomendado:
Instale a versão 2.0 ou posterior do mongosh para se conectar e ter interação com a implantação.
Para fluxos de trabalho do Docker Compose, instale Docker Compose v1.27 ou posterior.
Nenhuma configuração de nuvem privada virtual (VPC), firewall ou proxy é necessária. A implantação é executada em rede local.
Criar uma implantação local do Atlas com Docker
Instale e inicie o Docker.
Para saber mais, consulte a documentação do Docker.
Execute a imagem do Docker.
Exemplo:
docker run -p 27017:27017 mongodb/mongodb-atlas-local
docker run -e MONGODB_INITDB_ROOT_USERNAME=user -e MONGODB_INITDB_ROOT_PASSWORD=pass -p 27017:27017 mongodb/mongodb-atlas-local
Para automatizar um sistema em contêiner do Atlas, você precisará esperar que o contêiner esteja em um estado saudável antes de poder se conectar ao Atlas.
O exemplo a seguir demonstra o sistema de uma imagem do Atlas no Docker e a sondagem do Docker para verificar o estado do container. Quando o container estiver em um estado saudável, o script automatize uma conexão com sua instância do Atlas com o Mongosh.
Crie um arquivo chamado
mongodb-atlas-local.she cole o seguinte script no seu novo arquivo.Start mongodb-atlas-local container echo "Starting the container" CONTAINER_ID=$(docker run --rm -d -P mongodb/mongodb-atlas-local:latest) echo "waiting for container to become healthy..." function wait() { CONTAINER_ID=$1 echo "waiting for container to become healthy..." for _ in $(seq 120); do STATE=$(docker inspect -f '{{ .State.Health.Status }}' "$CONTAINER_ID") case $STATE in healthy) echo "container is healthy" return 0 ;; unhealthy) echo "container is unhealthy" docker logs "$CONTAINER_ID" stop exit 1 ;; *) sleep 1 esac done echo "container did not get healthy within 120 seconds, quitting" docker logs mongodb_atlas_local stop exit 2 } wait "$CONTAINER_ID" EXPOSED_PORT=$(docker inspect --format='{{ (index (index .NetworkSettings.Ports "27017/tcp") 0).HostPort }}' "$CONTAINER_ID") Build the connectionstring CONNECTION_STRING="mongodb://127.0.0.1:$EXPOSED_PORT/test?directConnection=true" Example usage of the connection string to connect to mongosh mongosh "$CONNECTION_STRING" Execute o seguinte comando para tornar o arquivo executável.
chmod +x mongodb-atlas-local.sh Execute o executável.
./mongodb-atlas-local.sh
Conecte-se ao sistema Atlas local.
Para se conectar à implantação local do Atlas a partir do host (não do container), copie e cole o seguinte comando em um novo terminal e substitua a variável {connection_string} por sua string de conexão.
Observação
O exemplo a seguir usa mongosh, mas você pode usar o método de conexão de sua preferência.
mongosh {connection_string}
Exemplos:
mongosh "mongodb://localhost:27017/?directConnection=true"
mongosh "mongodb://user:pass@localhost:27017/?directConnection=true"
Criar um Sistema do Atlas Local com o Docker Compose
Crie uma implantação local do Atlas com Docker Compose. Para obter um exemplo completo e detalhado, consulte Exemplo de composição do Docker.
Observação
Se você tiver uma implementação existente do Atlas baseada no Docker-Compose que criou com a imagem oficial do Docker do MongoDB e que gostaria de converter para usar a imagem Atlas Local Dev, consulte Converter em uma implementação local abaixo.
Instale e inicie o Docker.
Para saber mais, consulte a documentação do Docker.
Instale o Docker Compose.
Exemplo:
brew install docker-compose
Para saber mais, consulte a documentação de instalação do Docker Compose.
Crie um arquivo docker-compose.yaml.
Crie o arquivo docker-compose.yaml no mesmo diretório do qual você executa o Docker Compose. Para obter um exemplo completo e detalhado, consulte Exemplo de composição do Docker.
Exemplo:
1 services: 2 mongodb: 3 image: mongodb/mongodb-atlas-local 4 environment: 5 - MONGODB_INITDB_ROOT_USERNAME=user 6 - MONGODB_INITDB_ROOT_PASSWORD=pass 7 ports: 8 - 27018:27017
Conecte-se ao sistema Atlas local.
Para se conectar à implantação local do Atlas a partir do host (não do container), copie e cole o seguinte comando em um novo terminal e substitua a variável {connection_string} por sua string de conexão.
Observação
O exemplo a seguir usa mongosh, mas você pode usar o método de conexão de sua preferência.
mongosh {connection_string}
Exemplo:
mongosh "mongodb://user:pass@localhost:27018/?directConnection=true"
Persistência de dados em execuções com o Docker Compose
Você pode persistir dados em várias execuções com Docker Compose. A persistência dos dados ajuda a garantir que os dados não sejam perdidos entre as execuções. Os dados permanecem disponíveis em todas as execuções do Docker Compose.
Instale e inicie o Docker.
Para saber mais, consulte a documentação do Docker.
Instale o Docker Compose.
Exemplo:
brew install docker-compose
Para saber mais, consulte a documentação de instalação do Docker Compose.
Crie um arquivo docker-compose.yaml.
Atualize o arquivo docker-compose.yaml para montar os diretórios de dados necessários como volumes.
Exemplo:
1 services: 2 mongodb: 3 hostname: mongodb 4 image: mongodb/mongodb-atlas-local 5 environment: 6 - MONGODB_INITDB_ROOT_USERNAME=user 7 - MONGODB_INITDB_ROOT_PASSWORD=pass 8 ports: 9 - 27019:27017 10 volumes: 11 - data:/data/db 12 - config:/data/configdb 13 volumes: 14 data: 15 config:
Execute o Docker Compose.
O comando abaixo cria uma implantação Atlas local com os recursos do MongoDB Search habilitados.
Exemplo:
docker-compose up
Você também pode executar o Docker Compose no modo independente.
Exemplo:
docker-compose up -d
Conecte-se ao sistema Atlas local.
Para se conectar à implantação local do Atlas a partir do host (não do container), copie e cole o seguinte comando em um novo terminal e substitua a variável {connection_string} por sua string de conexão.
Observação
O exemplo a seguir usa mongosh, mas você pode usar o método de conexão de sua preferência.
mongosh {connection_string}
Exemplo:
mongosh "mongodb://user:pass@localhost:27019/?directConnection=true"
Gerar uma lista de dependências
Você pode gerar uma lista das dependências para a imagem do Docker do mongodb/mongodb-atlas-local .
Verificar a assinatura da imagem
Você pode verificar a assinatura da imagem do Docker do mongodb/mongodb-atlas-local .
Execute a imagem com ações do Github
Para executar a imagem do Docker do mongodb/mongodb-atlas-local com ações do Github, crie um arquivo de fluxo de trabalho. Para saber mais, consulte o Início rápido de ações do Github.
Exemplo:
Crie o seguinte arquivo mongodb.yml no diretório .github/workflows :
on: push: branches: - main pull_request: jobs: run: runs-on: ubuntu-latest services: mongodb: image: mongodb/mongodb-atlas-local ports: - 27017:27017 steps: - name: install mongosh run: | curl --output mongosh.deb https://downloads.mongodb.com/compass/mongodb-mongosh_2.2.1_amd64.deb sudo dpkg -i mongosh.deb mongosh --version - run: mongosh 'mongodb://localhost/?directConnection=true' --eval 'show dbs'
Converter imagem oficial em um sistema local do Atlas
Se você tiver uma implementação existente do Atlas em execução no Docker Compose que você criou com a imagem oficial do Docker do mongo, poderá consultar a seguinte lista de verificação para simplificar sua conversão para a imagem mongodb-atlas-local.
Remova qualquer
commandexistente do seu arquivodocker-compose.yaml. Como ocommandem uma definição do Docker Compose substitui oENTRYPOINTdefinido na imagemmongodb-atlas-local, você deve remover qualquercommandexistente para que a imagemmongodb-atlas-localseja executada conforme projetado.Não há necessidade de definir uma verificação de integridade para o sistema do Atlas , pois esse recurso está integrado na imagem
mongodb-atlas-local.
Exemplo de atualizações de composição do Docker
Os exemplos a seguir ilustram as prováveis alterações necessárias no arquivo YAML do Docker Compose:
services: self_built_atlas_implementation: image: mongo:8.0 ports: - 27017:27017 command: ["./entrypoint.sh"] # You may have defined a health check for the database in the entrypoint script.
services: local_dev_atlas: image: mongodb/mongodb-atlas-local:8.0 hostname: local_dev_atlas ports: - 27017:27017 environment: - MONGODB_INITDB_ROOT_USERNAME=user - MONGODB_INITDB_ROOT_PASSWORD=pass volumes: - data:/data/db - config:/data/configdb volumes: - data: - config:
Verificar a implantação
Depois de iniciar seu contêiner, confirme se a implantação está em execução e se você pode se conectar.
checkpoint | Etapa de verificação |
|---|---|
Imagem puxada | Execute |
Contêiner em execução | Execute |
Contêiner saudável | Execute |
A conexão é bem-sucedida | Conecte-se com |
Volumes de dados presentes (opcional) | Execute |
Próximos passos
Depois de criar e verificar sua implantação local do Atlas com o Docker, você pode:
Conecte seu aplicativo: Use a string de conexão na configuração do aplicativo.
Configurar persistência de dados: mapeie volumes do Docker para reter dados em reinicializações de contêiner. Consulte Criar uma implantação local do Atlas com o Docker para obter detalhes.
Use um fluxo de trabalho do Docker Compose: Para aplicativos de vários serviços, integre a implantação em um arquivo
docker-compose.yaml. Para obter um exemplo completo, consulte Exemplo do Docker Compose.Pesquise seus dados: Use o MongoDB Search para criar e testar índices de pesquisa em sua implantação local. Para etapas detalhadas, consulte Criar um Índice de pesquisa do MongoDB e executar uma query.
Use o Atlas CLI em vez disso: Para uma implantação local gerenciada por CLI, consulte Criar uma implantação local do Atlas.