Docker로 로컬 Atlas 배포서버 만들기
이 튜토리얼에서는 Docker를 사용하여 로컬 Atlas 배포서버를 만드는 방법을 보여줍니다. 이 튜토리얼에서는 Docker를 사용하여 단일 노드 복제본 세트를 배포합니다.
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 배포서버를 생성합니다.
참고
공식 MongoDB Docker 이미지를 사용하여 구축한 기존 Docker-Compose 기반 Atlas 구현 있고 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 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 이미지의 서명을 확인할 수 있습니다.
코사인을 설치합니다.
예시:
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'
공식 이미지를 로컬 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: