- 이 버전의 문서는 보관되어 더 이상 지원되지 않습니다. 최신 문서 를 참조하여 Atlas CLI 버전을 업그레이드 하는 방법을 학습 보세요.
이 전체 Docker Compose 예시 영구 데이터로 로컬 MongoDB Atlas cluster 설정합니다. 전체 Docker Compose 파일 과 각 구성 요소를 검토하여 그 목적과 구성을 이해합니다. 자세한 학습 은 Docker 사용하여 로컬 Atlas 배포서버 만들기를 참조하세요.
Docker Compose 파일
다음 예시 mongodb/mongodb-atlas-local
이미지를 사용하여 로컬 Atlas cluster 만듭니다. 이 파일 네트워킹을 구성하고, 데이터베이스 및 데이터 영구 시드를 위한 올바른 데이터 볼륨, Atlas Search 인덱스를 마운트합니다.
1 services: 2 mongodb: 3 image: mongodb/mongodb-atlas-local 4 hostname: mongodb 5 environment: 6 - MONGODB_INITDB_ROOT_USERNAME=user 7 - MONGODB_INITDB_ROOT_PASSWORD=pass 8 ports: 9 - 27017:27017 10 volumes: 11 - ./init:/docker-entrypoint-initdb.d 12 - db:/data/db 13 - configdb:/data/configdb 14 - mongot:/data/mongot 15 volumes: 16 db: 17 configdb: 18 mongot:
다음 정보를 사용하여 로컬 Atlas cluster 에 자체 데이터를 프로비저닝하고 구성 및 데이터를 유지합니다.
파일 구조
Docker Compose 파일 다음과 같은 주요 매개변수가 있습니다.
services
실행 컨테이너를 정의합니다. 이 예시 에서는mongodb
이라는 단일 서비스가 MongoDB 서비스를 정의합니다. 전체 애플리케이션 실행 데 필요한 다른 서비스가 있을 수 있습니다.volumes
컨테이너 간에 주식 할 수 있는 영구 저장 위치를 정의합니다. 이 예시 MongoDB 서비스가 작동하는 데 필요한 영구 저장 위치를 보여줍니다.
서비스 구성
이미지
image: mongodb/mongodb-atlas-local
필수 사항
이 매개변수는 로컬 MongoDB Atlas 이미지를 정의합니다. 이 정의는 최신 버전의 이미지를 사용하며 태그를 지정하다 사용하는 것과 :latest
동일합니다. 조직 특정 이미지 빌드 사용해야 하는 경우 를 추가할 수 있습니다.@sha256:<digest>
최신 OS 업데이트와 함께 특정 버전의 MongoDB 사용하려면 버전 번호 태그를 사용하세요. 예시: mongodb/mongodb-atlas-local:8.0.6
호스트 이름
hostname: mongodb
필수 사항
이 매개변수는 컨테이너 의 호스트 이름을 정의합니다. 로컬 복제본 세트 작동하려면 이 값을 올바르게 지정해야 합니다. 이 매개변수는 동일한 Docker Container 네트워크 내의 서로 다른 서비스 간의 통신을 보장하는 데 필요합니다. 동일한 호스트 이름( mongodb
)으로 이 컨테이너 를 참조할 수 있습니다.
환경 설정
인증
environment: - MONGODB_INITDB_ROOT_USERNAME=user - MONGODB_INITDB_ROOT_PASSWORD=pass
권장
강조 표시된 environment
매개변수는 로컬 Atlas cluster 의 초기 루트 사용자 이름 과 비밀번호를 설정하다 . 간단하게 설명하기 위해 이 예시 에서는 자격 증명 Docker Compose 파일 자체에 정의되어 있지만 자격 증명을 환경 변수로 추상화할 수 있습니다.
로깅
environment: - MONGODB_INITDB_ROOT_USERNAME=user - MONGODB_INITDB_ROOT_PASSWORD=pass - MONGOT_LOG_FILE=/dev/stderr - RUNNER_LOG_FILE=/dev/stderr
옵션
강조 표시된 environment
매개 변수는 문제를 진단하는 데 도움이 되는 로깅을 정의합니다. Atlas Search 기능을 제공하는 mongot
은(는) MONGOT_LOG_FILE
를 생성합니다. 이 예시 mongot
로그를 stderr
디렉토리 로 출력합니다. 러너 서비스는 RUNNER_LOG_FILE
를 생성합니다. 러너 서비스는 mongod
을 생성하는 프로세스 를 모니터링하고 mongot
와의 통합을 구성합니다. 이 예시 러너 로그를 stderr
디렉토리 에 출력합니다.
볼륨
볼륨은 데이터를 유지하고 컨테이너 전체의 구성을 다시 시작합니다.
초기화
volumes: - ./init:/docker-entrypoint-initdb.d
조건부
강조 표시된 volumes
매개변수는 로컬 init
디렉토리 컨테이너의 초기화 디렉토리 에 마운트합니다. 일반적으로 init
디렉토리 프로젝트 에 배치되며 docker-compose up
를 실행 하면 프로세스 이 디렉토리 에서 초기화 스크립트를 검색합니다. 지원되는 파일 형식은 다음과 같습니다.
.js
MongoDB 셸 스크립트.sh
Bash 스크립트
예시 들어 init
폴더에 다음 스크립트 배치하는 경우입니다.
스크립트 예시 샘플 데이터 세트 검색합니다.
다운로드한 데이터 세트 확인합니다.
mongorestore
로컬 MongoDB Atlas 컨테이너 이미지가 제공하는 를 사용하여 아카이브를 새 로컬 Atlas cluster 로 복원 .로드된 데이터를 확인합니다.
init/init.sh !/bin/bash curl -O https://atlas-education.s3.amazonaws.com/sampledata.archive echo "Sample data downloaded." mongorestore --uri "$CONNECTION_STRING" --archive=./sampledata.archive echo "Sample data loaded successfully."
참고
연결 문자열
시딩 프로세스 중에 연결 문자열 작성하는 것이 어려울 수 있으므로, 특히 로컬 머신과 Docker 네트워크 간에 전환할 때 $CONNECTION_STRING
환경 변수가 시딩 프로세스 중에 자동으로 제공됩니다.
데이터
volumes: - ./init:/docker-entrypoint-initdb.d - db:/data/db - configdb:/data/configdb - mongot:/data/mongot volumes: db: configdb: mongot:
조건부
MongoDB 기본값 으로 /data/db
디렉토리 에 데이터를 저장합니다. 이 Docker Compose 파일 에서 /data/db
디렉토리 MongoDB 서비스의 db
볼륨에 매핑됩니다. Docker Compose 파일 끝에 있는 volumes
매개변수는 mongodb 서비스에 매핑된 db
볼륨을 포함하여 다른 서비스에서 사용할 수 있는 볼륨을 선언합니다. db
볼륨은 컨테이너 외부의 저장 위치 역할을 하며 컨테이너 다시 시작되는 동안 데이터를 보존합니다.
구성
volumes: - ./init:/docker-entrypoint-initdb.d - db:/data/db - configdb:/data/configdb - mongot:/data/mongot volumes: db: configdb: mongot:
조건부
기본값 으로 MongoDB 구성 데이터를 /data/configdb
디렉토리 에 저장하며, 이 디렉토리는 저장된 데이터와 동일한 방식으로 유지됩니다.
Atlas Search ()mongot
volumes: - ./init:/docker-entrypoint-initdb.d - db:/data/db - configdb:/data/configdb - mongot:/data/mongot volumes: db: configdb: mongot:
조건부
로컬 MongoDB Atlas 이미지()는mongodb/mongodb-atlas-local
mongot
Atlas Search 및 Atlas Vector Search 기능을 제공하는 와 함께 제공됩니다. 기본값 으로 는mongot
디렉토리 에 인덱스를 /data/mongot
저장합니다. 이 볼륨은 매핑되고, 마운트되며, 해당 데이터는 구성 및 저장된 데이터와 동일한 방식으로 실행 전반에 걸쳐 유지됩니다.
프로세스가 정상인지 확인
로컬 Atlas 구현 MongoDB 프로세스 ()mongod
및 검색 기능() 구성을mongot)
간소화합니다. 초기화 중에 이러한 프로세스를 시작하고 다시 시작해야 합니다. 컨테이너 실행 중일 수 있지만 필요한 프로세스 준비되지 않은 경우도 있습니다. 로컬 MongoDB Atlas 이미지는 상태 확인도 제공합니다.
상태 확인을 사용하여 MongoDB 및 검색 역량 프로세스와 초기화 스크립트가 완전히 준비되었는지 확인할 수 있습니다.
스크립트에 다음 코드를 포함합니다.
timeout 120 bash -c 'until [ "$(docker inspect --format='\''{{.State.Health.Status}}'\''<container-name>)" = "healthy" ]; do sleep 2; done'
Docker Compose를 사용하여 상태 확인을 수행할 수도 있습니다.
Docker Compose 사용
서비스를 시작하려면 다음 명령을 실행 .
docker-compose up
-d
을(를) 추가하여 분리된 모드 에서 서비스를 실행 수 있습니다.
서비스를 중지하려면 다음 명령을 실행 .
docker-compose down
-v
를 추가하여 볼륨을 제거 하고 데이터를 지울 수 있습니다. 데이터 또는 구성 변경 사항을 유지하지 않거나 새 컨테이너 에서 다시 시작하려는 경우 이 옵션을 사용합니다.
docker-compose up
를 실행 때 서비스가 정상인지 확인하려면 condition: service_healthy
매개변수를 추가합니다.
api: depends_on: atlas_local: condition: service_healthy
자세한 내용은 Docker를 사용하여 로컬 Atlas 배포 만들기를 참조하세요.
피드백
로컬 Atlas 클러스터에 대해 논의하려면 MongoDB 개발자 커뮤니티 포럼을 참조하세요. 도움을 받거나, 피드백 제공하거나, 기능을 요청 MongoDB 피드백 엔진을 참조하세요.