2016-11-10 1 views
5

노드 및 MongoDB로 도커 작성을 설정하려고합니다. 공식 Mongo 컨테이너와 함께 데이터베이스의 지속적인 백업과 시작시 초기 복원을 위해 전용 컨테이너 (mongodb-backup)를 사용하고 있습니다.Docker의 MongoDB - 컨테이너 종료시 백업 데이터베이스

내 문제는 정상 종료의 경우 백업을 실행하는 방법입니다 (docker-compose stop).
따라서 데이터베이스에 쓰는 프로세스가 없도록하려면 노드 컨테이너를 먼저 종료해야합니다. 그런 다음 데이터베이스를 백업하고 마지막으로 mongodb 및 mongodb-backup conatainer를 종료하십시오.

repository에는 mongodb 및 mongodb-backup의 내 도커 작성 설정이 포함되어 있습니다.

누구나 구현 방법을 알고 있습니까?

+0

당신의 질문은 나에게 명확하지 않다. mongo 컨테이너가 망가진 후 백업에서 데이터를 어떻게 복구 할 수 있습니까? – RichArt

+0

아니요, 복원은 mongodb-backup 컨테이너에서 처리합니다. mongodb 컨테이너가 종료되기 전에 데이터베이스를 백업 (덤프)하고 싶습니다. –

+1

mongodb 컨테이너가 망가지는 경우 데이터를 잃지 않기 위해 백업을 수행한다고 가정합니다. 따라서이를 수행하는 유일한 방법은 매일 또는 시간별 백업을 예약하는 것입니다. 너의 몽고제 컨테이너가 다음에 문을 닫을 때 어떻게 알 수 있니? 계획된 유지 보수에만 해당됩니다. 이게 당신 사건입니까? – RichArt

답변

0

이 경우 작은 유지 관리 스크립트를 작성할 수 있습니다. 원시 docker-compose stop을하는 대신이 스크립트를 대신 실행할 수 있습니다. 그것을 유지 보수라고 부르 자.

#!/bin/sh 
docker-compose stop app 
docker-compose stop mongo-backup # ensure only one is active 
docker-compose run --rm -e INIT_BACKUP=1 # do the backup manually 
docker-compose stop mongo # stop the database 
+0

downvoters는 최소한 코멘트를 남길 예의를 가질 수 있습니까? 문제가 있으면 답을 수정 해 드리겠습니다. – ShrimpPhaser