Docker 및 Docker Compose를 사용하여 로컬에서 Mongodb 복제 세트 실행
TLDR
docker-compose up -d
를 사용하고 도커 작성 파일
version: "3.8"
services:
mongo1:
image: mongo:4.2
container_name: mongo1
command: ["--replSet", "my-replica-set", "--bind_ip_all", "--port", "30001"]
volumes:
- ./data/mongo-1:/data/db
ports:
- 30001:30001
healthcheck:
test: test $$(echo "rs.initiate({_id:'my-replica-set',members:[{_id:0,host:\"mongo1:30001\"},{_id:1,host:\"mongo2:30002\"},{_id:2,host:\"mongo3:30003\"}]}).ok || rs.status().ok" | mongo --port 30001 --quiet) -eq 1
interval: 10s
start_period: 30s
mongo2:
image: mongo:4.2
container_name: mongo2
command: ["--replSet", "my-replica-set", "--bind_ip_all", "--port", "30002"]
volumes:
- ./data/mongo-2:/data/db
ports:
- 30002:30002
mongo3:
image: mongo:4.2
container_name: mongo3
command: ["--replSet", "my-replica-set", "--bind_ip_all", "--port", "30003"]
volumes:
- ./data/mongo-3:/data/db
ports:
- 30003:30003
뭐야?
docker-compose
설정은 3개의 인스턴스가 실행되는 로컬 mongo 복제 세트를 시작합니다.전제 조건이 있습니까?
• 도커
• 도커 작성
•
/etc/hosts
파일의 다음:127.0.0.1 mongo1
127.0.0.1 mongo2
127.0.0.1 mongo3
복제 세트를 어떻게 실행합니까?
단순함:
docker-compose up -d
각 인스턴스의 Mongo Shell에 어떻게 액세스합니까?
docker exec -it mongo1 sh -c "mongo --port 30001"
docker exec -it mongo2 sh -c "mongo --port 30002"
docker exec -it mongo3 sh -c "mongo --port 30003"
어떻게 작동합니까?
rs.initiate(
{
s_id : 'my-replica-set',
members: [
{ _id : 0, host : "mongo1:30001" },
{ _id : 1, host : "mongo2:30002" },
{ _id : 2, host : "mongo3:30003" }
]
}
)
my-replica-set
라는 복제 세트에 합류하고 서로 대화를 시작합니다PRIMARY
가 되도록 선택되고 다른 두 개는 SECONDARY
인스턴스로보3T
Robo 3T를 사용하여 로컬에서 테스트하고 연결에 다음 구성을 사용했습니다.
감사의 말 / 추가 자료
내 블로그에서 교차 게시됨here
Reference
이 문제에 관하여(Docker 및 Docker Compose를 사용하여 로컬에서 Mongodb 복제 세트 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ma3574/running-a-mongo-replicaset-locally-using-docker-and-docker-compose-4g2c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)