Docker로 로컬 Atlas 배포서버 만들기
이 페이지의 내용
이 튜토리얼에서는 Docker를 사용하여 로컬 Atlas 배포서버를 만드는 방법을 보여줍니다. 이 튜토리얼에서는 Docker를 사용하여 단일 노드 복제본 세트를 배포합니다.
중요
공개 미리보기
Docker 및 Docker Compose의 로컬 배포는 공개 미리 보기로 제공됩니다. 기능 및 해당 설명서는 공개 미리 보기 단계에서 언제든지 변경될 수 있습니다. 질문하고 피드백을 제공하려면 Atlas CLI 로컬 개발 커뮤니티 포럼을 참조하세요.
Docker로 로컬 Atlas 배포서버 만들기
Docker를 설치하고 시작합니다.
자세한 내용은 Docker 설명서를 참조하세요.
Docker 이미지를 실행합니다.
예시:
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 인스턴스에 대한 연결을 자동화합니다.
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" 다음 명령을 실행하여 파일을 실행 파일로 만듭니다.
chmod +x mongodb-atlas-local.sh 실행 파일을 실행합니다.
./mongodb-atlas-local.sh
로컬 Atlas 배포서버에 연결합니다.
호스트(컨테이너 아님)에서 로컬 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 배포 만들기
Docker Compose를사용하여 로컬 Atlas 배포서버를 생성합니다.
Docker를 설치하고 시작합니다.
자세한 내용은 Docker 설명서를 참조하세요.
Docker Compose를 설치합니다.
예시:
brew install docker-compose
자세한 내용은 Docker Compose 설치 설명서를 참조하세요.
로컬 Atlas 배포서버에 연결합니다.
호스트(컨테이너 아님)에서 로컬 Atlas 배포서버에 연결하려면 다음 명령을 복사하여 새 터미널에 붙여넣고 {connection_string}
변수를 연결 string 로 바꿉니다.
참고
다음 예제에서는 mongosh
을(를) 사용하지만 원하는 연결 방법을 사용할 수 있습니다.
mongosh {connection_string}
예시:
mongosh "mongodb://user:pass@localhost:27018/?directConnection=true"
Docker Compose로 실행 전반에 걸쳐 데이터 유지
Docker Compose 를 사용하여 여러 실행에 걸쳐 데이터를 유지할 수 있습니다. . 데이터를 유지하면 실행 사이에 데이터가 손실되지 않도록 하는 데 도움이 됩니다. 데이터는 Docker Compose 실행 전반에 걸쳐 계속 사용할 수 있습니다.
Docker를 설치하고 시작합니다.
자세한 내용은 Docker 설명서를 참조하세요.
Docker Compose를 설치합니다.
예시:
brew install docker-compose
자세한 내용은 Docker Compose 설치 설명서를 참조하세요.
docker-compose.yaml
파일을 만듭니다.
docker-compose.yaml
파일을 업데이트하여 필요한 데이터 디렉토리를 볼륨으로 마운트합니다.
예시:
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 - 27019:27017 9 volumes: 10 - data:/data/db 11 volumes: 12 data:
Docker Compose를 실행합니다.
다음 명령은 Atlas Search 기능이 활성화된 로컬 Atlas 배포를 만듭니다.
예시:
docker-compose up
분리 모드에서 Docker Compose를 실행할 수도 있습니다.
예시:
docker-compose up -d
로컬 Atlas 배포서버에 연결합니다.
호스트(컨테이너 아님)에서 로컬 Atlas 배포서버에 연결하려면 다음 명령을 복사하여 새 터미널에 붙여넣고 {connection_string}
변수를 연결 string 로 바꿉니다.
참고
다음 예제에서는 mongosh
을(를) 사용하지만 원하는 연결 방법을 사용할 수 있습니다.
mongosh {connection_string}
예시:
mongosh "mongodb://user:pass@localhost:27019/?directConnection=true"
종속성 목록 생성
mongodb/mongodb-atlas-local
Docker 이미지에 대한 종속성 목록을 생성할 수 있습니다.
syft를 설치합니다.
예시:
brew install syft
자세한 내용은 syft README를 참조하세요.
이미지 서명 확인
mongodb/mongodb-atlas-local
Docker 이미지의 서명을 확인할 수 있습니다.
코사인을 설치합니다.
예시:
brew install cosign
자세한 내용은 cosign 설치를 참조하세요.
Github 작업으로 이미지 실행
작업을 사용하여 이미지를 실행하려면 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'