Docker Desktop 컨테이너 백업 방법

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