Menu Docs
Página inicial do Docs
/ /
Atlas CLI
/ /

Criar uma implantação local do Atlas com Docker

Nesta página

  • Criar uma implantação local do Atlas com Docker
  • Criar um Sistema do Atlas Local com o Docker Compose
  • Persistência de dados em execuções com o Docker Compose
  • Gerar uma lista de dependências
  • Verificar a assinatura da imagem
  • Execute a imagem com ações do Github

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.

1

Para saber mais,consulte a documentação do Docker.

2

Exemplo:

docker pull mongodb/mongodb-atlas-local:latest
3

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.

  1. 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"
  2. Execute o seguinte comando para tornar o arquivo executável.

    chmod +x mongodb-atlas-local.sh
  3. Execute o executável.

    ./mongodb-atlas-local.sh
4

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"

Crie um sistema local do Atlas com Docker Compose.

1

Para saber mais,consulte a documentação do Docker.

2

Exemplo:

brew install docker-compose

Para saber mais, consulte a documentação de instalação do Docker Compose.

3

Crie o arquivo docker-compose.yaml no mesmo diretório do qual você executa o Docker Compose.

Exemplo:

1services:
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
4

O comando abaixo cria um sistema Atlas local com os recursos do Atlas Search habilitados.

Exemplo:

docker-compose up
5

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"
6
docker compose down -v

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.

1

Para saber mais,consulte a documentação do Docker.

2

Exemplo:

brew install docker-compose

Para saber mais, consulte a documentação de instalação do Docker Compose.

3

Atualize o arquivo docker-compose.yaml para montar os diretórios de dados necessários como volumes.

Exemplo:

1services:
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
13volumes:
14 data:
15 config:
4

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
5

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"

Você pode gerar uma lista das dependências para a imagem do Docker do mongodb/mongodb-atlas-local .

1

Exemplo:

brew install syft

Para saber mais, consulte o README do syft.

2
syft mongodb/mongodb-atlas-local

Você pode verificar a assinatura da imagem do Docker do mongodb/mongodb-atlas-local .

1

Exemplo:

brew install cosign

Para saber mais,consulte a Instalação do cosign.

2

Exemplo:

curl -O https://cosign.mongodb.com/mongodb-atlas-local.pem
COSIGN_REPOSITORY="docker.io/mongodb/signatures" cosign verify --private-infrastructure --key=./mongodb-atlas-local.pem "mongodb/mongodb-atlas-local";

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'

Voltar

Crie uma implantação local.