간결한 Linux 서비스와 단순한 영구 마운트, 호스트 장치에 대한 직접 액세스가 필요하다면 Docker가 Jellyfin에 적합합니다. 반대로 독립적인 게스트 OS 제어, 더 강력한 커널 격리 또는 하이퍼바이저 수준의 수명 주기 관리가 더 중요하다면 가상 머신이 적합합니다. Docker도 VM 내부에서 실행할 수 있으므로 둘은 완전히 반대되는 선택지는 아니며, 가상화 중심 홈 랩에서는 이것이 가장 깔끔한 세 번째 선택지인 경우가 많습니다.
컨테이너가 항상 더 빠르거나 VM이 항상 더 안전하다는 일반적인 주장보다, 특히 GPU 가속과 미디어 저장소를 포함해 실제로 필요한 하드웨어와 복구 경로를 기준으로 결정해야 합니다.
실제로 필요한 격리 경계부터 정하세요
Docker 컨테이너는 Linux 호스트 커널을 공유하면서 프로세스, 파일 시스템, 네트워크 및 기타 네임스페이스를 격리합니다. VM은 하이퍼바이저 아래에서 자체 게스트 커널을 실행합니다. 따라서 VM은 운영 체제 수준에서 더 강력한 경계를 만들지만, 패치와 백업, 부팅이 필요한 게스트 OS와 할당해야 할 메모리 및 저장 공간이 추가됩니다.
Jellyfin이 전용 호스트 또는 애플리케이션 중심 호스트에서 실행되는 안정적인 Linux 서비스 하나라면 일반적으로 컨테이너 경계로 충분합니다. 호스트가 실험용 플랫폼이거나, 다른 Linux 배포판이 필요하거나, Jellyfin의 변경 사항을 호스트 커널 및 패키지 구성과 격리하고 싶다면 VM 경계가 더 큰 가치를 가집니다.
GPU 액세스가 첫 번째 실질적인 호환성 관문입니다
Linux의 Docker에서는 Jellyfin에 /dev/dri와 같은 렌더링 장치에 대한 액세스 권한을 부여하고 호스트 드라이버 스택을 사용할 수 있습니다. Jellyfin 컨테이너 안내서에는 하드웨어 가속을 위한 장치 매핑이 설명되어 있으며, Windows 또는 macOS에서 컨테이너화된 Jellyfin을 사용하는 것은 하드웨어 가속 트랜스코딩을 위한 지원 경로가 아니라고 명시되어 있습니다.
VM에서는 하이퍼바이저가 가상 GPU 또는 패스스루 GPU 경로를 제공해야 하며, 전체 장치 패스스루를 사용하면 해당 가속기가 게스트 전용으로 할당될 수 있습니다. 드라이버 분리나 전용 GPU가 필요하다면 더 나은 방식일 수 있지만, 설정 및 복구에 필요한 요소가 늘어납니다.
ZimaSpace의 컨테이너 방식의 장치 액세스와 VM 패스스루 비교에서도 동일한 기본적인 차이를 확인할 수 있습니다. 호스트 장치 노드를 공유하는 방식과 게스트가 장치를 독점적으로 소유하는 방식은 서로 다른 장치 격리 문제를 해결합니다.
VM이 데이터 계층을 직접 소유하기 전까지는 Docker의 저장소 매핑이 더 간단합니다
Jellyfin 설정과 캐시가 호스트 경로 또는 볼륨에 영구적으로 저장되고, 미디어가 로컬 디스크나 OS에 마운트된 공유 저장소에서 바인드 마운트되는 경우 Docker는 깔끔하게 작동합니다. 저장소는 먼저 호스트가 인식하고, 컨테이너에는 필요한 경로만 전달됩니다.
VM에서는 미디어를 가상 디스크, 직접 디스크/컨트롤러 패스스루 또는 게스트 내부의 SMB/NFS 마운트 중 어떤 방식으로 연결할지 결정해야 합니다. VM을 사용하면 전체 Jellyfin 스택을 하나의 게스트로 이식할 수 있지만, 테라바이트 단위의 미디어를 가상 디스크 이미지에 연결하면 백업과 마이그레이션이 필요 이상으로 큰 작업이 될 수 있습니다.
스냅샷 버튼이 아니라 백업 및 롤백 범위를 비교하세요
Docker는 작은 단위의 백업을 권장합니다. Compose 또는 다른 배포 정의와 영구 Jellyfin 상태를 함께 백업하면 됩니다. 컨테이너를 다시 만들고 미디어를 다시 마운트하면, 일시적인 런타임 계층을 보존하지 않고도 애플리케이션을 복구할 수 있습니다.
VM 스냅샷은 게스트 상태를 편리하게 캡처할 수 있지만, 외부 미디어의 완전한 백업이나 일관된 장기 데이터베이스 백업을 자동으로 보장하지는 않습니다. 기존 하이퍼바이저가 게스트 백업, 복제 및 복원 테스트를 안정적으로 처리한다면 VM의 운영상 이점이 있습니다. 그렇지 않다면 복구해야 할 계층이 하나 더 추가됩니다.
오버헤드는 최종 결정이 아니라 동점 해결 기준으로 사용하세요
컨테이너는 별도의 범용 게스트 OS를 부팅하지 않으므로 일반적으로 메모리와 저장 공간 오버헤드가 더 적습니다. VM에는 게스트 커널과 서비스에 필요한 RAM뿐 아니라 운영 체제용 가상 디스크도 필요합니다. 소형 상시 가동 서버에서는 이 차이가 중요할 수 있지만, RAM이 충분한 호스트에서는 GPU, 저장소 및 유지 관리 요구 사항에 비하면 무시할 수 있는 수준일 수 있습니다.
VM이 실제 격리 또는 드라이버 요구 사항을 해결한다면 벤치마크 효율만 보고 Docker를 선택하지 마세요. 마찬가지로, 관리되지 않는 동일한 마운트와 자격 증명을 다른 운영 체제로 감싸기만 하는 것이라면 단순히 “보안”을 이유로 VM을 선택하지 마세요.
호스트의 역할에 따라 Docker, VM 또는 세 번째 경로를 선택하세요
호스트가 Linux이고 낮은 오버헤드를 원하며, 영구 경로를 쉽게 문서화할 수 있고, 필요한 GPU를 안정적으로 매핑할 수 있다면 Docker가 적합합니다. Jellyfin에 독립적인 OS, 더 강력한 커널 분리 또는 하이퍼바이저가 관리하는 수명 주기 및 장치 소유권이 필요하다면 VM이 적합합니다.
홈 랩이 이미 가상화 중심이지만 이동 가능한 게스트 내부에서 컨테이너 방식의 애플리케이션 배포를 원한다면 Linux VM 내부의 Docker가 적합합니다. VM 경계에 분명한 역할이 있을 때만 추가 계층을 정당화할 수 있습니다. 그렇지 않다면 새로운 기능 없이 복잡성만 늘어납니다.
선택하기 전에 실제 하드웨어 트랜스코딩을 한 번 수행하고, 배포 환경을 재부팅한 다음, 영구 상태를 깨끗한 대상에 복원해 보세요. 최소한의 운영 부담으로 이 테스트를 통과하는 경로가 해당 호스트에 더 적합한 Jellyfin 배포 방식입니다.
제품 비교
더 읽어보기

Jellyfin 미디어 볼륨에 ZFS, Btrfs, ext4 중 어떤 파일 시스템이 더 적합할까요?
복구 모델에 따라 Jellyfin 미디어 파일 시스템을 선택하세요. 풀 무결성이 중요하면 ZFS, Linux 네이티브 CoW가 필요하면 Btrfs, 운영 복잡성을 낮추려면 ext4를 사용하세요.

Jellyfin 내장 백업과 파일 수준 백업: 어떤 것을 사용해야 할까요?
편리한 앱 상태 복구에는 Jellyfin의 기본 제공 백업을 사용하고, 더 광범위한 호스트 및 배포 상태까지 복구해야 할 때는 중지된 상태에서 파일 수준 백업을 사용하세요.

Kodi와 함께 사용하는 Jellyfin과 독립형 Jellyfin 클라이언트: 어느 쪽이 더 적합할까요?
클라이언트 상태를 더 많이 활용하는 맞춤형 TV 중심 워크플로에는 Kodi를 선택하고, 더 간편한 다중 기기·서버 중심 사용에는 독립형 Jellyfin 클라이언트를 선택하세요.

