본문으로 건너뛰기

Docker 백업

Docker 환경에서 실행 중인 컨테이너, 데이터 볼륨, 이미지를 안전하게 백업하는 방법을 안내합니다.

Docker 백업이 필요한 이유

Docker 컨테이너는 기본적으로 일시적(ephemeral)입니다. 컨테이너가 삭제되면 내부 데이터도 함께 사라집니다. 중요한 데이터가 있는 볼륨이나, 직접 수정한 이미지는 반드시 백업해두어야 장애 상황에서 빠르게 복구할 수 있습니다.


백업 대상 이해하기

Docker 환경에서 백업할 수 있는 세 가지 요소를 알아봅니다.

  • 볼륨 (우선순위: 높음): 애플리케이션 데이터가 저장된 영구 스토리지입니다. 가장 중요하게 백업해야 합니다.
  • 이미지 (우선순위: 중간): 컨테이너 실행에 필요한 이미지 파일입니다. 레지스트리에서 다시 가져올 수 있지만 커스텀 이미지는 백업이 필요합니다.
  • 컨테이너 (우선순위: 낮음): 실행 중인 컨테이너의 현재 상태입니다. 이미지에서 재생성할 수 있으므로 우선순위가 낮습니다.
볼륨 백업을 최우선으로

이미지는 레지스트리에서 다시 가져올 수 있고, 컨테이너는 이미지에서 재생성할 수 있습니다. 하지만 볼륨에 저장된 사용자 데이터는 복구가 불가능할 수 있으므로 가장 중요하게 백업해야 합니다.


백업 절차

KIWI의 [백업 관리] 페이지에서 간편하게 Docker 백업을 생성할 수 있습니다.

Step 1: 백업 관리 페이지 이동

  1. 좌측 메뉴에서 **[백업 관리]**를 클릭합니다 .
  2. 상단의 백업 생성 버튼을 클릭합니다 .

Step 2: 백업 대상 선택

  1. 런타임: 백업할 Docker 런타임 환경을 선택합니다 .
  2. 백업 유형: Docker 백업을 선택합니다 .
런타임이란?

런타임은 KIWI에 등록된 Docker 호스트를 의미합니다. 여러 서버에 Docker가 설치되어 있다면 각각 다른 런타임으로 등록되어 있을 수 있습니다.

Step 3: 백업 항목 선택

백업할 항목을 선택합니다. 필요한 항목만 선택하여 백업 시간과 저장 공간을 절약할 수 있습니다.

  • 볼륨: 데이터가 저장된 Docker 볼륨을 선택합니다 (가장 중요)
  • 이미지: 커스텀 이미지나 중요한 이미지를 선택합니다 .
  • 컨테이너: 현재 상태를 저장하고 싶은 컨테이너를 선택합니다 .

Step 4: 백업 실행

  1. 선택한 항목을 확인합니다 .
  2. 백업 시작 버튼을 클릭합니다 .
  3. 백업 진행 상황이 화면에 표시됩니다 .
백업 중 주의사항

볼륨 백업 시 해당 볼륨을 사용하는 컨테이너가 일시적으로 느려질 수 있습니다. 가능하면 서비스 사용량이 적은 시간에 백업을 실행하세요.


백업 원리 이해하기

KIWI가 내부적으로 어떻게 백업을 수행하는지 이해하면 문제 해결에 도움이 됩니다.

볼륨 백업 방식

볼륨은 임시 컨테이너를 생성하여 tar 파일로 압축합니다.

# KIWI 내부 동작 예시
docker run --rm \
-v volume_name:/data \
-v /backup:/backup \
alpine tar cvf /backup/volume_backup.tar /data

이미지 백업 방식

이미지는 docker save 명령으로 tar 파일로 내보냅니다.

# KIWI 내부 동작 예시
docker save -o image_backup.tar image_name:tag

자동 백업 설정

매번 수동으로 백업하는 것은 번거롭고 잊기 쉽습니다. 자동 백업 스케줄을 설정하여 정기적으로 백업이 실행되도록 하세요.

스케줄 옵션 설명

  • 주기: 백업 실행 시간을 Cron 표현식으로 설정합니다 .

    • 예: 0 3 * * * - 매일 새벽 3시에 실행
    • 예: 0 2 * * 0 - 매주 일요일 새벽 2시에 실행
  • 대상: 자동 백업에 포함할 항목을 선택합니다 .

    • 권장: 전체 볼륨을 대상으로 설정
  • 보관 기간: 오래된 백업의 자동 삭제 기간을 설정합니다 .

    • 예: 7일 - 7일이 지난 백업은 자동 삭제
권장 백업 스케줄
  • 개발 환경: 매일 1회, 3일 보관
  • 운영 환경: 매일 1회 + 매주 1회, 각각 7일/30일 보관

문제 해결

볼륨 백업 실패: "volume is in use"

Error: volume is in use

왜 발생하나요?

다른 컨테이너가 해당 볼륨을 사용 중일 때 발생합니다. 데이터 정합성을 보장하기 위해 사용 중인 볼륨의 백업이 제한될 수 있습니다.

해결 방법

  1. 컨테이너 일시 중지: 해당 볼륨을 사용하는 컨테이너를 일시 중지한 후 백업을 다시 시도하세요
  2. 강제 백업: 백업 옵션에서 강제 백업을 활성화하세요 (데이터 정합성 주의)
강제 백업 사용 시 주의

강제 백업은 데이터가 변경되는 중에 백업될 수 있어, 복원 시 데이터 불일치가 발생할 수 있습니다. 가능하면 컨테이너를 중지한 후 백업하는 것이 안전합니다.

디스크 공간 부족: "No space left on device"

No space left on device

왜 발생하나요?

백업 파일을 저장할 디스크 공간이 부족합니다. 특히 대용량 볼륨이나 이미지를 백업할 때 자주 발생합니다.

해결 방법

  1. 오래된 백업 정리: [백업 관리] 페이지에서 불필요한 백업을 삭제하세요
  2. 백업 저장 경로 변경: 여유 공간이 있는 다른 디스크로 백업 경로를 변경하세요
  3. 보관 기간 단축: 자동 백업의 보관 기간을 줄여 오래된 백업이 자동 삭제되도록 설정하세요
디스크 공간 모니터링

백업 실패를 예방하려면 디스크 사용량을 정기적으로 확인하세요. 백업 저장 공간은 최소 전체 백업 크기의 2배 이상 여유를 확보하는 것이 좋습니다.