예. 영구 상태가 컨테이너 외부에 저장되고 이전 버전과 호환된다면, 앱 데이터를 잃지 않고 컨테이너 이미지를 롤백할 수 있습니다.
홈 NAS에서 이미지를 교체하면 일반적으로 애플리케이션 런타임만 다시 생성되며, 이름이 지정된 볼륨이나 바인드 마운트는 데이터베이스, 설정, 사용자 파일을 유지합니다. 주의해야 할 경계는 스키마 변경입니다. 최신 이미지가 데이터베이스를 마이그레이션하거나 설정을 이전 이미지가 읽을 수 없는 방식으로 다시 작성할 수 있기 때문입니다. 롤백하기 전에 현재 마운트, 이미지 식별 정보, 설정, 시크릿 및 일관된 데이터 백업을 확보하세요.
이미지를 변경하기 전에 현재 상태 고정하기
자동 이미지 업데이트를 중지하고 현재 이미지 태그, 변경 불가능한 다이제스트, 컨테이너 설정, 환경 변수, 네트워크, 포트, 마운트, 재시작 정책 및 상태 점검을 기록하세요. Compose 파일이나 내보낸 설정은 컨테이너와 별도로 저장하세요.
NAS 컨테이너 롤백 작업에서는 변경되는 latest 태그에 의존하지 말고, 이전에 확인된 이미지를 보관하는 것이 좋습니다. 실제로 복구에 사용할 수 있는 지점은 해당 이미지를 실행했던 설정과 함께 보관된 특정 이전 이미지 버전입니다.
최신 버전을 중지하기 전에 애플리케이션과 일관된 데이터베이스 백업이나 스냅샷을 생성하세요. 기존 볼륨이 롤백용 복사본이라고 가정하지 마세요. 업데이트로 인해 이미 스키마나 데이터가 변경되었을 수 있습니다.
앱 데이터가 쓰기 가능 계층 외부에 저장되는지 확인하기
모든 이름이 지정된 볼륨과 바인드 마운트를 매핑한 다음, 데이터베이스, 업로드 파일, 플러그인, 인증서, 캐시 또는 설정이 컨테이너의 쓰기 가능 계층에만 저장되어 있지 않은지 확인하세요.
영구 저장소는 새 컨테이너가 동일한 외부 데이터 위치에 다시 연결될 때만 컨테이너 교체 후에도 유지됩니다. SynoForum의 이미지 버전 작업 흐름에서는 다른 이미지로 컨테이너를 다시 생성하기 전에 볼륨 데이터가 NAS 저장소에 유지되는지 명시적으로 확인합니다.
중요한 데이터가 쓰기 가능 계층에만 있다면 현재 컨테이너를 제거하기 전에 복사하거나 내보내세요. 이 추출 작업은 복구 단계로 처리해야 하며, 버전이 지정되지 않은 컨테이너를 무기한 유지할 이유로 삼아서는 안 됩니다.
latest를 재사용하지 말고 정확한 이전 이미지 지정하기
마지막으로 정상 작동이 확인된 태그나 다이제스트를 가져오거나 찾아 이미지 참조만 업데이트하세요. 서비스를 다시 생성하기 전에 아키텍처, 애플리케이션 에디션 및 필요한 환경 변수를 확인하세요.
Compose로 관리되는 서비스를 롤백하는 경우, 실행 중인 컨테이너를 Docker가 제자리에서 되돌리도록 요청하기보다 일반적으로 이전의 명시적인 이미지 버전으로 돌아갑니다. 실용적인 롤백은 고정된 Compose 이미지 태그를 변경하고 서비스를 다시 생성하는 방식으로 진행됩니다.
식별 정보가 불확실한 오래된 캐시 이미지를 사용하지 마세요. 이미지를 가져온 후 다이제스트를 기록하여, 이후 다시 빌드할 때 동일한 변경 가능한 태그 아래에서 다른 바이너리가 조용히 선택되지 않도록 하세요.
최신 버전에서 데이터베이스가 변경되었는지 확인하기
롤백 대상 버전과 현재 이미지 사이의 버전에 대한 애플리케이션 릴리스 노트와 마이그레이션 로그를 확인하세요. 되돌릴 수 없는 스키마 변경, 다시 작성된 설정, 암호화 키 변경 또는 플러그인 업그레이드가 있는지 살펴보세요.
애플리케이션 코드와 스키마가 호환되어야 하므로 데이터베이스 롤백은 이미지 롤백보다 어렵습니다. Octopus는 이전 버전과 새 버전의 애플리케이션이 공존하거나 되돌려질 수 있는 경우 하위 호환 가능한 마이그레이션이 필요하다고 설명하며, 버전 간 스키마 호환성이 롤백 가능 여부를 결정하는 경계라고 설명합니다.
이전 이미지가 마이그레이션된 데이터베이스를 읽지 못한다면, 이전 코드가 새 상태를 가리키도록 하지 말고 업그레이드 전 데이터베이스 백업을 복원하세요. 롤백을 다시 되돌려야 할 경우에 대비해 현재 데이터베이스도 별도로 보존하세요.
동일한 영구 경로로 서비스 다시 생성하기
확인된 동일한 이름 지정 볼륨이나 바인드 마운트를 유지한 채 애플리케이션 컨테이너를 중지하고 이전 이미지를 사용해 다시 생성하세요. 볼륨을 제거하는 명령이나 UI 옵션은 사용하지 마세요.
이전 버전에서 문서화된 차이를 요구하지 않는 한 네트워크 이름, 서비스 별칭, 공개 포트, UID/GID 매핑, 시크릿 및 리버스 프록시 대상을 동일하게 유지하세요. 잘못된 마운트로 컨테이너가 정상적으로 시작되면 새 빈 앱이 생성되어 데이터 손실처럼 보일 수 있습니다.
로그인하거나 백그라운드 작업을 실행하도록 허용하기 전에 마운트 목록과 애플리케이션 로그를 확인하세요. 앱이 새 데이터베이스를 초기화한다면 즉시 중지하고, 잘못된 위치로 데이터를 가져오지 말고 데이터 경로를 수정하세요.
롤백을 검증하고 정방향 복구 경로 유지하기
로그인, 데이터베이스 읽기 및 쓰기, 업로드, 예약 작업, 통합 기능 및 한 차례의 통제된 재시작을 테스트하세요. 레코드와 파일 일부를 롤백 전 목록과 비교하세요.
업데이트 전 앱 데이터 스냅샷을 위한 ZimaSpace 작업 흐름은 향후 업그레이드를 더 안전하게 준비할 수 있는 방법을 제공합니다.
이전 이미지가 의도한 영구 데이터를 사용하고, 스키마가 호환되거나 복원되었으며, 서비스를 다시 생성한 후에도 정상적으로 작동할 때에만 롤백이 완료된 것입니다. 이전 버전이 일반적인 작업 기간 동안 안정적으로 작동하는 것이 확인될 때까지 최신 이미지, 해당 데이터 백업 및 롤백 기록을 보관하세요.
지원 및 팁
더 읽어보기

Plex가 다른 Docker 컨테이너와 GPU를 공유할 수 있나요?
Plex와 다른 컨테이너가 동일한 GPU에 함께 액세스할 수 있는 경우가 많지만, 드라이버 지원, 디바이스 매핑, 비디오 엔진 부하, 메모리, 복구 동작을 테스트해야 합니다.

Plex 오류가 클라이언트에서 발생한 것인지 서버에서 발생한 것인지 확인하는 방법
다른 클라이언트에서 동일한 항목을 재현하고, 세션 경로를 비교한 다음, 범위 분석을 통해 장애가 실제로 발생한 위치를 확인한 후에만 서버 증거를 수집하세요.

Plex 캐시 및 트랜스코딩 임시 저장소 구성 방법
영구 Plex 상태는 보호하면서 트랜스코딩 임시 파일은 적합한 로컬 저장소에 배치한 다음, 정리 상태와 여유 공간 및 재시작 동작을 확인하세요.

