Docs Menu
Docs Home
/ /
Atlas CLI
/ /

Docker로 로컬 Atlas 배포서버 만들기

이 페이지의 내용

  • Docker로 로컬 Atlas 배포서버 만들기
  • Docker Compose로 로컬 Atlas 배포 만들기
  • Docker Compose로 실행 전반에 걸쳐 데이터 유지
  • 종속성 목록 생성
  • 이미지 서명 확인
  • Github 작업으로 이미지 실행

이 튜토리얼에서는 Docker를 사용하여 로컬 Atlas 배포서버를 만드는 방법을 보여줍니다. 이 튜토리얼에서는 Docker를 사용하여 단일 노드 복제본 세트를 배포합니다.

중요

공개 미리보기

Docker 및 Docker Compose의 로컬 배포는 공개 미리 보기로 제공됩니다. 기능 및 해당 설명서는 공개 미리 보기 단계에서 언제든지 변경될 수 있습니다. 질문하고 피드백을 제공하려면 Atlas CLI 로컬 개발 커뮤니티 포럼을 참조하세요.

1

자세한 내용은 Docker 설명서를 참조하세요.

2

예시:

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

예시:

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

Atlas의 컨테이너화된 배포를 자동화하려면 Atlas에 연결하기 전에 컨테이너가 정상 상태가 될 때까지 기다려야 합니다.

다음 예제에서는 Docker에 Atlas 이미지를 배포하고 Docker를 폴링하여 컨테이너의 상태를 확인하는 방법을 보여 줍니다. 컨테이너가 정상 상태가 되면 스크립트는 Mongosh를 사용하여 Atlas 인스턴스에 대한 연결을 자동화합니다.

  1. mongodb-atlas-local.sh 파일을 만들고 다음 스크립트를 새 파일에 붙여넣습니다.

    # 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. 다음 명령을 실행하여 파일을 실행 파일로 만듭니다.

    chmod +x mongodb-atlas-local.sh
  3. 실행 파일을 실행합니다.

    ./mongodb-atlas-local.sh
4

호스트(컨테이너 아님)에서 로컬 Atlas 배포서버에 연결하려면 다음 명령을 복사하여 새 터미널에 붙여넣고 {connection_string} 변수를 연결 string 로 바꿉니다.

참고

다음 예제에서는 mongosh 을(를) 사용하지만 원하는 연결 방법을 사용할 수 있습니다.

mongosh {connection_string}

예시:

mongosh "mongodb://localhost:27017/?directConnection=true"
mongosh "mongodb://user:pass@localhost:27017/?directConnection=true"

Docker Compose를사용하여 로컬 Atlas 배포서버를 생성합니다.

1

자세한 내용은 Docker 설명서를 참조하세요.

2

예시:

brew install docker-compose

자세한 내용은 Docker Compose 설치 설명서를 참조하세요.

3

Docker Compose를 실행하는 디렉토리와 동일한 디렉토리에 docker-compose.yaml 파일을 만듭니다.

예시:

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

다음 명령은 Atlas Search 기능이 활성화된 로컬 Atlas 배포를 만듭니다.

예시:

docker-compose up
5

호스트(컨테이너 아님)에서 로컬 Atlas 배포서버에 연결하려면 다음 명령을 복사하여 새 터미널에 붙여넣고 {connection_string} 변수를 연결 string 로 바꿉니다.

참고

다음 예제에서는 mongosh 을(를) 사용하지만 원하는 연결 방법을 사용할 수 있습니다.

mongosh {connection_string}

예시:

mongosh "mongodb://user:pass@localhost:27018/?directConnection=true"
6
docker compose down -v

Docker Compose 를 사용하여 여러 실행에 걸쳐 데이터를 유지할 수 있습니다. . 데이터를 유지하면 실행 사이에 데이터가 손실되지 않도록 하는 데 도움이 됩니다. 데이터는 Docker Compose 실행 전반에 걸쳐 계속 사용할 수 있습니다.

1

자세한 내용은 Docker 설명서를 참조하세요.

2

예시:

brew install docker-compose

자세한 내용은 Docker Compose 설치 설명서를 참조하세요.

3

docker-compose.yaml 파일을 업데이트하여 필요한 데이터 디렉토리를 볼륨으로 마운트합니다.

예시:

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

다음 명령은 Atlas Search 기능이 활성화된 로컬 Atlas 배포를 만듭니다.

예시:

docker-compose up

분리 모드에서 Docker Compose를 실행할 수도 있습니다.

예시:

docker-compose up -d
5

호스트(컨테이너 아님)에서 로컬 Atlas 배포서버에 연결하려면 다음 명령을 복사하여 새 터미널에 붙여넣고 {connection_string} 변수를 연결 string 로 바꿉니다.

참고

다음 예제에서는 mongosh 을(를) 사용하지만 원하는 연결 방법을 사용할 수 있습니다.

mongosh {connection_string}

예시:

mongosh "mongodb://user:pass@localhost:27019/?directConnection=true"

mongodb/mongodb-atlas-local Docker 이미지에 대한 종속성 목록을 생성할 수 있습니다.

1

예시:

brew install syft

자세한 내용은 syft README를 참조하세요.

2
syft mongodb/mongodb-atlas-local

mongodb/mongodb-atlas-local Docker 이미지의 서명을 확인할 수 있습니다.

1

예시:

brew install cosign

자세한 내용은 cosign 설치를 참조하세요.

2

예시:

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";

작업을 사용하여 이미지를 실행하려면 mongodb/mongodb-atlas-local Docker Github 워크플로 파일을 만듭니다. 자세한 내용은 Github 작업 빠른 시작을 참조하세요.

예시:

.github/workflows 디렉토리에 다음 mongodb.yml 파일을 만듭니다.

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'

돌아가기

로컬 배포 만들기