200102 Docker, MongoDB
Docker, MongoDB
Docker MongoDB 컨테이너를 3개 생성하고
1개를 마스터, 2개를 슬레이브로 레플리카셋을 구성하자.
- 컨테이너 ip 확인
docker inspect container_id
- 컨테이너 안에서 ping 하고 싶다면?
https://stackoverflow.com/questions/39901311/docker-ubuntu-bash-ping-command-not-found
1. 컨테이너 실행
docker run --name mongodb_server1 -d -p 16010:27017 mongo --replSet myapp
docker run --name mongodb_server2 -d -p 26010:27017 mongo --replSet myapp
docker run --name mongodb_server3 -d -p 26010:27017 mongo --replSet myapp
2. Master 설정
mongodb_server1 에 접속해 rs.inititate()
rs.add("mongodb_server2의 ip:27017")
rs.add("mongodb_server2의 ip:27017")
rs.isMaster() 확인
3. 설정값 변경
host ip가 컨테이너 ID로 되어있는 경우에는 설정 변경 필요.
cfg = rs.config() // cfg 변수 선언
cfg.members[0].host = "mongodb_server1의 ip:27017" // cfg의 설정값 변경
rs.reconfig(cfg) // cfg 가지고 재설정
4. Slave 확인
show dbs => 오류 메시지 출력
rs.slaveOk()
다시 show dbs 확인.
docker-compose.yml 예제