Docker 백업은 교체 가능한 미디어 파일뿐 아니라 배포 정의, 애플리케이션 상태, 데이터베이스, 자격 증명, 복구 절차까지 보존해야 합니다.
영화, 음악, 사진이 가장 큰 데이터셋일 수 있지만 Compose 파일, 앱 데이터베이스, 메타데이터, 사용자 계정, 인증서, 암호화 키 또는 마운트 매핑을 잃으면 라이브러리를 사용할 수 없게 되거나 몇 주에 걸쳐 다시 구축해야 할 수 있습니다. 신뢰할 수 있는 백업은 “빈 호스트에서 서비스를 재현하려면 무엇이 있어야 하는가?”라는 질문에서 시작하며, 필요한 각 계층을 애플리케이션 일관성을 보장하는 방식으로 보호합니다.
배포 정의 백업
컨테이너를 재현하는 데 필요한 모든 Compose 파일, 오버라이드 파일, Dockerfile, 빌드 컨텍스트, 스택 이름, 이미지 태그, 명령, 포트 매핑, 네트워크, 볼륨 선언, 상태 점검, 재시작 정책 및 리소스 제한을 보존하세요.
한 셀프 호스팅 관련 토론에서는 각 애플리케이션의 Compose 파일과 환경 파일을 함께 보관하여 스택을 예측 가능하게 재배포하는 방법을 설명합니다. 이렇게 하면 실행 중인 컨테이너를 문서로 의존하는 대신 배포 구성을 중요한 백업 자산으로 관리할 수 있습니다.
latest와 같은 부동 태그만 사용하지 말고 정확한 이미지 버전을 기록하세요. 적절한 경우 구성은 버전 관리 시스템에 저장하되, 비밀 정보는 공개 저장소에서 제외하고 필요한 외부 종속 항목을 보호된 목록으로 포함하세요.
모든 영구 바인드 마운트와 이름 있는 볼륨 보호
각 서비스에 연결된 마운트를 나열하고 교체 가능한 캐시, 애플리케이션 구성, 메타데이터, 데이터베이스, 업로드된 콘텐츠, 생성된 썸네일 또는 중요한 상태로 분류하세요. 교체할 수 없는 모든 경로를 백업하세요.
OpenMediaVault 관련 토론에서는 중요한 복구 세트가 Compose 정의와 영구 데이터이며, 컨테이너 이미지는 대개 다시 다운로드할 수 있다고 설명합니다. 이는 영구 상태와 교체 가능한 컨테이너 이미지를 구분합니다.
대용량 라이브러리 마운트뿐 아니라 숨겨진 애플리케이션 디렉터리와 작은 메타데이터 볼륨도 포함하세요. 바인드 마운트의 소스 경로가 호스트 백업에 포함되는지 확인하고, 이름 있는 볼륨은 소유권과 권한을 보존하는 방식으로 내보내세요.
데이터베이스 일관성이 보장된 백업 생성
PostgreSQL, MariaDB, MySQL, MongoDB, SQLite, Redis 영속성 및 임베디드 데이터베이스를 식별하세요. 트랜잭션이 변경되는 동안 파일을 복사하지 말고 데이터베이스가 지원하는 덤프, 스냅샷 또는 일시 정지 백업 절차를 사용하세요.
Stack Overflow의 Docker 볼륨 백업 토론에서는 임시 컨테이너에 볼륨을 마운트하여 아카이브를 생성하는 방법을 보여주지만, 데이터베이스 파일에는 여전히 일관성에 대한 고려가 필요합니다. 단순한 볼륨 아카이브가 자동으로 유효한 트랜잭션 데이터베이스 백업이 되는 것은 아닙니다.
엔진 버전, 데이터베이스 이름, 사용자, 확장 기능 및 복원 순서를 기록하세요. 파일 시스템 백업과 별도로 논리적 덤프를 테스트하여 한 방법이 불완전할 때 다른 방법으로 복구할 수 있도록 하세요.
비밀 정보, 인증서 및 ID 보존
환경 변수의 비밀 정보, API 토큰, 데이터베이스 비밀번호, OAuth 클라이언트 자격 증명, TLS 인증서, 개인 키, SSH 키, 암호화 키 및 애플리케이션 복구 코드를 보호된 사본으로 백업하세요.
비밀 정보는 일반 Compose 파일과 분리하여 저장하고, 장애가 발생한 Docker 호스트에 의존하지 않는 복구 방법으로 암호화해야 합니다. 백업에는 각 비밀 정보가 어느 서비스와 변수에 복원되는지 파악할 수 있는 충분한 맥락이 포함되어야 합니다.
암호화된 데이터베이스나 스토리지의 암호화 키를 누락하지 마세요. 키, 암호문 또는 키 관리 구성을 잃으면 암호화된 데이터를 완벽하게 복사해도 복구할 수 없습니다.
리버스 프록시, DNS, 작업 및 호스트 전제 조건 포함
리버스 프록시 라우트, 미들웨어, 접근 제어, DNS 레코드, DDNS 구성, 예약 작업, 업데이트 정책, 방화벽 규칙, GPU 장치 매핑, UID 및 GID 할당, 스토리지 마운트 유닛을 보존하세요.
한 백업 제품 개요에서는 안정적인 볼륨 보호를 위해 예약, 보존 기간, 암호화, 대상 제어 및 실행 이력 확인도 필요하다고 강조합니다. 이러한 운영 세부 정보가 일회성 아카이브를 반복 가능한 백업 워크플로로 전환합니다.
Compose를 시작하기 전에 어떤 호스트 디렉터리, 네트워크, 커널 기능 및 장치가 존재해야 하는지 문서화하세요. 이러한 전제 조건이 없으면 복원된 컨테이너가 비어 있는 대체 디렉터리를 만들거나, 잘못된 권한을 사용하거나, 하드웨어 가속 없이 시작할 수 있습니다.
빈 호스트에서 복원하여 백업 검증
백업과 작성된 지침만 사용하여 격리된 테스트 호스트나 VM에 복원하세요. 문서에 기록된 순서대로 스토리지 경로, 비밀 정보, 데이터베이스, 프록시 라우트 및 컨테이너를 재생성하세요.
ZimaSpace의 공유 폴더 하나를 안전하게 복원하는 방법 가이드는 동일한 원칙을 제시합니다. 백업은 통제된 복원을 통해 그 범위가 검증된 후에만 신뢰할 수 있습니다.
로그인, 권한, 데이터베이스 무결성, 메타데이터, 썸네일, 재생, 업로드, 예약 작업, TLS 및 두 번째 재시작을 검증하세요. 복원 과정에서 누락된 종속 항목이 발견될 때마다 복구 시간과 백업 체크리스트를 기록하고 업데이트하세요.
지원 및 팁
더 읽어보기

Docker 볼륨을 복원하면 파일 내용은 복원되지만 확장 속성은 사라지는 이유는 무엇인가요?
xattr 인벤토리, tar 및 Rsync 옵션, 네임스페이스, 대상 지원, 권한, 레이블, 앱 메타데이터와 테스트를 다루는 볼륨 복원 진단.

Compose 파일을 변경한 후에도 실행 중인 컨테이너의 메모리 제한이 기존 값으로 유지되는 이유는 무엇인가?
실행 중인 cgroup, 재시작과 재생성, Compose 필드, 하드 및 소프트 제한, 상위 범위, 스왑, 런타임 힙을 다루는 메모리 제한 진단입니다.

리버스 프록시를 재시작하면 셀프 호스팅 앱 하나의 모든 세션이 무효화되는 이유는 무엇인가요?
재시작 범위, 쿠키 소유권, 비밀 키 순환, 캐시 기반 세션, 스티키 라우팅, 인증 게이트웨이 및 복구를 다루는 세션 손실 진단.

