Criar uma implantação local do Atlas com Docker
Nesta página
Este tutorial mostra como criar um sistema local do Atlas com Docker. Neste tutorial, implantaremos um conjunto de réplicas de nó único com Docker.
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.sh
e 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 um sistema local do Atlas com 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
.
Crie o arquivo docker-compose.yaml
no mesmo diretório do qual você executa o Docker Compose.
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 o 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 um sistema Atlas local com os recursos do Atlas 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
.
Instale o syft.
Exemplo:
brew install syft
Para saber mais, consulte o README do syft.
Verificar a assinatura da imagem
Você pode verificar a assinatura da imagem do Docker do mongodb/mongodb-atlas-local
.
Instale o cosign.
Exemplo:
brew install cosign
Para saber mais,consulte a Instalação do cosign.
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 Github Início rápido de ações do .
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'