C.W.K.
Stream
Lesson 05 of 05 · published

Backup 과 Restore — 장애 났을 때 처음 알지 마

~14 min · data, operations

Level 0Container 호기심
0 XP0/36 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

두 전략, 둘 다 알 가치

1. Native dump 도구 (DB 권장)

Postgres, MySQL, Mongo — DB 자체 dump 도구 써. 논리적, portable, 버전 관대. pg_dump, mysqldump, mongodump.

2. 임시 container 통한 volume snapshot (아무거나 동작)

Volume 과 호스트 디렉토리 둘 다 mount 한 임시 container 띄워서 volume 을 호스트 디렉토리로 tar. 거칠고, 일반적, 가끔 유일한 옵션.

Code

pg_dump 백업·bash
# Online dump (no downtime)
docker exec db pg_dump -U postgres app > backups/app-$(date +%Y%m%d).sql

# Restore into a fresh container
docker exec -i db psql -U postgres app < backups/app-20260503.sql
Volume snapshot (모든 volume)·bash
# Backup
docker run --rm \
  -v pgdata:/source:ro \
  -v $(pwd)/backups:/backup \
  alpine sh -c "cd /source && tar czf /backup/pgdata-$(date +%Y%m%d).tar.gz ."

# Restore
docker run --rm \
  -v pgdata:/target \
  -v $(pwd)/backups:/backup \
  alpine sh -c "cd /target && tar xzf /backup/pgdata-20260503.tar.gz"

External links

Exercise

Named volume 으로 Postgres container 셋업. 데이터 만들어. pg_dump 와 volume snapshot 둘 다 백업. Container 내려, 새 volume 으로 재생성, 각 백업에서 복원. 둘 다 동작해야 함.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.