728x90
사용 중인 컨테이너 서버를 데이터까지 포함하여 포맷 후에도 온전히 복원하는 방법에 대한 내용입니다.
백업 및 복원 전략 (Windows Docker Desktop, WSL2 기준)
- 전제 조건
- 웹서버 컨테이너가 볼륨을 사용해 데이터 저장 중일 가능성이 높음 (예: DB, HTML 등).
- Docker Desktop은 내부적으로 WSL2 위에 작동함.
- 목표: 컨테이너 + 이미지 + 볼륨(데이터) 전부 백업
1단계: 백업 (포맷 전에 실행)
① 컨테이너 이미지 저장 (선택적)
docker commit 컨테이너이름 웹서버백업:latest
docker save -o 웹서버백업.tar 웹서버백업:latest
② 사용 중인 데이터 볼륨 백업
docker volume ls # 어떤 볼륨을 사용하는지 확인
볼륨이 my-web-data라고 가정하면:
docker run --rm -v my-web-data:/volume -v ${PWD}:/backup busybox tar czf /backup/my-web-data.tar.gz /volume
my-web-data.tar.gz 파일이 현재 폴더에 생깁니다.
③ 전체 Docker 데이터 (WSL2) 백업
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
이 2개 파일이 있으면 Docker Desktop 환경을 통째로 보존 가능
2단계: 복원
① Docker Desktop 설치
Windows에서 Docker Desktop 설치
② WSL2 백업 복원
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
wsl --import docker-desktop "C:\경로\docker-desktop" docker-desktop.tar
wsl --import docker-desktop-data "C:\경로\docker-desktop-data" docker-desktop-data.tar
③ (또는) 이미지 + 볼륨 개별 복원
이미지 복원
docker load -i 웹서버백업.tar
볼륨 복원
docker volume create my-web-data
docker run --rm -v my-web-data:/volume -v ${PWD}:/backup busybox tar xzf /backup/my-web-data.tar.gz -C /volume
3단계: 컨테이너 재생성
이미지 + 데이터 복원이 끝났다면, 컨테이너를 다시 실행
docker run -d -p 80:80 --name 웹서버 -v my-web-data:/usr/share/nginx/html 웹서버백업:latest
요약 체크리스트
항목 백업 복원
컨테이너 상태 | docker commit, docker save | docker load |
데이터 볼륨 | busybox tar 방식 | tar xzf로 복원 |
전체 Docker | wsl --export | wsl --import |
실전 팁
- 꼭 어떤 볼륨을 사용하는지 확인이 필요합니다 (docker inspect 컨테이너명으로).
- 볼륨을 백업 안 하면 데이터가 날아갑니다 (DB, 웹파일 등 포함).
- 전체 백업용 .tar 파일은 외장 저장장치나 클라우드에 보관하는게 바람직합니다
300x250
'IT > Docker' 카테고리의 다른 글
워드프레스에 도메인 연결한 뒤, 외부 접속 방법 (1) | 2025.05.27 |
---|