- 작성시간 : 2022/05/03 10:19
- 퍼머링크 : mcchae.egloos.com/11408520
- 덧글수 : 0
Docker compose 로 서비스를 잘 하고 있었다면,
또 보통 RDB나 MongoDB와 같은 NoSQL을 사용하고 있었다면,
해당 DB의 내용을 백업 및 복구해야할 경우가 많습니다.
이런 경우를 위해 준비를 해 보았습니다.
1) MariaDB/MySQL 백업
Docker Host에서 다음과 같은 명령을 이용합니다.
docker exec {컨테이너이름_또는_ID} mysqldump -u {DB사용자} -p{암호} {DB명} > dump_$(date '+%d-%m-%Y_%H-%M-%S').sql
그러면 현재 폴더에 dump_03-05-2022_09-38-52.sql 과 같은 식으로 현재 시각이 붙어 백업됩니다.
2) MariaDB/MySQL 복구
Docker Host에서 다음과 같은 명령을 이용합니다.
(보통 이전 시각을 주었던 백업 파일 중에 하나를 symbolic link를 dump.sql 로 걸어줍니다.)
docker exec -i {컨테이너이름_또는_ID} mysql -u {DB사용자} -p{암호} {DB명} < dump.sql
3) MongoDB 백업
Docker Host에서 다음과 같은 2줄의 명령을 이용합니다.
docker exec {컨테이너이름_또는_ID} \
mongodump \
--host localhost:27017 \
--username {DB사용자} --password {암호} \
--archive=/tmp/dump.gz --gzip
docker cp {컨테이너이름_또는_ID}:/tmp/dump.gz dump_$(date '+%d-%m-%Y_%H-%M-%S').gz
그러면 현재 폴더에 dump_03-05-2022_09-38-52.gz 과 같은 식으로 현재 시각이 붙어 백업됩니다.
(만약 사용자와 암호를 안 주었다면 위에서 해당 옵션을 제외시키면 됩니다)
4) MongoDB 복구
Docker Host에서 다음과 같은 명령을 이용합니다.
(보통 이전 시각을 주었던 백업 파일 중에 하나를 symbolic link를 dump.gz 로 걸어줍니다.)
cat dump.gz | \
docker exec -i {컨테이너이름_또는_ID} \
mongorestore \
--host localhost:27017 \
--username {DB사용자} --password {암호} \
--archive --gzip
(만약 사용자와 암호를 안 주었다면 위에서 해당 옵션을 제외시키면 됩니다)
어느 분께는 도움이 되셨기를 ..
덧글