이 튜토리얼에서는 Docker를 사용하여 로컬 Atlas 배포서버를 만드는 방법을 보여줍니다. 이 튜토리얼에서는 Docker를 사용하여 단일 노드 복제본 세트를 배포합니다.
Docker로 로컬 Atlas 배포서버 만들기
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 배포서버 생성합니다.
참고
공식 MongoDB Docker 이미지를 사용하여 구축한 기존 Docker-Compose 기반 Atlas 구현 있고 Atlas 로컬 개발자 이미지를 사용하도록 변환하려는 경우 아래의 로컬 개발자 구현으로 변환을 참조하세요.
로컬 Atlas 배포서버에 연결합니다.
호스트(컨테이너 아님)에서 로컬 Atlas 배포서버에 연결하려면 다음 명령을 복사하여 새 터미널에 붙여넣고 {connection_string}
변수를 연결 string 로 바꿉니다.
참고
다음 예제에서는 mongosh
을(를) 사용하지만 원하는 연결 방법을 사용할 수 있습니다.
mongosh {connection_string}
예시:
mongosh "mongodb://user:pass@localhost:27018/?directConnection=true"
Docker Compose로 실행 전반에 걸쳐 데이터 유지
Docker Compose를 사용하면 여러 번 실행해도 데이터를 유지할 수 있습니다. 데이터를 유지하면 실행 사이에 데이터가 손실되지 않도록 하는 데 도움이 됩니다. 데이터는 Docker Compose 실행 전반에 걸쳐 계속 사용할 수 있습니다.
docker-compose.yaml
파일을 만듭니다.
docker-compose.yaml
파일을 업데이트하여 필요한 데이터 디렉토리를 볼륨으로 마운트합니다.
예시:
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:
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 이미지의 서명을 확인할 수 있습니다.
Github 작업으로 이미지 실행
GitHub 작업을 사용하여 Docker 이미지를 실행 하려면 워크플로 파일 만듭니다.mongodb/mongodb-atlas-local
자세한 학습 은 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'
공식 이미지를 로컬 Atlas 배포로 변환
공식 Mongo Docker 이미지로 구축한 기존 Atlas 구현 Docker Compose에서 실행 경우, 다음 체크리스트를 참조하여 mongodb-atlas-local 이미지로 변환하는 과정을 간소화할 수 있습니다.
docker-compose.yaml
파일 에서 기존command
을(를) 제거합니다. Docker Compose 정의의command
는mongodb-atlas-local
이미지에 정의된ENTRYPOINT
을 재정의하므로mongodb-atlas-local
이미지를 설계된 대로 실행 하려면 기존command
를 모두 제거 해야 합니다.이 기능
mongodb-atlas-local
이미지에 내장되어 있으므로 Atlas 배포서버 에 대한 상태 확인을 정의할 필요가 없습니다.
Docker Compose 업데이트 예시
다음 예제에서는 Docker Compose YAML 파일 에 필요한 변경 사항을 보여줍니다.
services: self_built_atlas_implementation: image: mongo:8.0 ports: - 27017:27017 command: ["./entrypoint.sh"] # You may have defined a health check for the database in the entrypoint script.
services: local_dev_atlas: image: mongodb/mongodb-atlas-local:8.0 hostname: local_dev_atlas ports: - 27017:27017 environment: - MONGODB_INITDB_ROOT_USERNAME=user - MONGODB_INITDB_ROOT_PASSWORD=pass volumes: - data:/data/db - config:/data/configdb volumes: - data: - config: