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.

Importante

Visualização pública

As implantações locais no Docker e Docker Compose estão disponíveis como uma visualização pública. O recurso e a documentação correspondente podem ser alterados a qualquer momento no estágio de pré-visualização pública. Para fazer perguntas e fornecer comentários, consulte oFórum da comunidade de desenvolvimento local do Atlas CLI .

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 até que o contêiner esteja em um estado íntegro 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 image: mongodb/mongodb-atlas-local
4 environment:
5 - MONGODB_INITDB_ROOT_USERNAME=user
6 - MONGODB_INITDB_ROOT_PASSWORD=pass
7 ports:
8 - 27019:27017
9 volumes:
10 - data:/data/db
11volumes:
12 data:
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.