Docker로 로컬 Atlas 배포서버 만들기
이 페이지의 내용
이 튜토리얼에서는 Docker를 사용하여 로컬 Atlas 배포서버를 만드는 방법을 보여줍니다. 이 튜토리얼에서는 Docker를 사용하여 단일 노드 복제본 세트를 배포합니다.
중요
공개 미리보기
Docker 및 Docker Compose의 로컬 배포는 공개 미리 보기로 제공됩니다. 기능 및 해당 설명서는 공개 미리 보기 단계에서 언제든지 변경될 수 있습니다. 질문하고 피드백 을 제공하려면 Atlas CLI 로컬 개발 커뮤니티 포럼을 참조하세요.
Docker로 로컬 Atlas 배포서버 만들기
Docker를 설치하고 시작합니다.
자세한 내용은 Docker 설명서를 참조하세요.
로컬 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: