Linux 장치 노드를 안전하게 노출할 수 있고, 호스트가 필요한 GPU 또는 USB 드라이버를 관리하며, 낮은 오버헤드나 GPU 공유가 중요하다면 Docker 호스트에 Proxmox LXC 컨테이너를 선택하세요. 게스트가 드라이버 스택을 직접 관리해야 하거나, IOMMU를 통해 PCI 장치를 격리해야 하거나, Docker와 하드웨어 액세스를 Proxmox 호스트와 독립적으로 유지해야 한다면 VM을 선택하세요. USB 직렬 장치는 어느 쪽에나 적합한 경우가 많지만, GPU 독점 패스스루에는 보통 VM이 더 적합합니다.
LXC와 VM을 비교하기 전에 “패스스루”의 의미를 정의하세요
LXC와 KVM은 워크로드에 하드웨어를 같은 방식으로 전달하지 않습니다. LXC 컨테이너는 Proxmox 커널을 공유하므로 일반적으로 `/dev/dri`, `/dev/ttyUSB0`, `/dev/bus/usb`와 같이 호스트에서 생성한 장치 노드에 접근할 권한을 부여받습니다. 호스트는 계속 하드웨어를 감지하고 커널 드라이버를 로드합니다.
VM은 자체 커널을 실행합니다. Proxmox는 USB 장치를 에뮬레이션하거나, 선택한 USB 장치 또는 포트를 연결하거나, VFIO와 IOMMU를 통해 PCI 장치를 할당할 수 있습니다. 그러면 게스트가 자체 드라이버를 로드하고, 할당된 하드웨어를 직접 설치한 장치처럼 취급합니다.
현재 ZimaSpace Proxmox NAS 설정 가이드에서는 두 게스트 유형을 모두 소개합니다. 이 글에서는 USB 동글, 직렬 어댑터, 미디어 GPU 또는 컴퓨팅 가속기가 필요한 컨테이너의 Docker 호스트를 기준으로 선택 범위를 좁혀 살펴봅니다.
| 비교 항목 | Proxmox LXC 내부의 Docker | VM 내부의 Docker |
|---|---|---|
| 커널 | Proxmox 호스트 커널 공유 | 독립된 게스트 커널 실행 |
| USB 액세스 | 호스트 장치 노드와 권한을 노출 | 선택한 USB 장치 또는 포트를 게스트에 연결 |
| GPU 액세스 | 일반적으로 호스트에 로드된 드라이버와 렌더 장치를 공유 | VFIO를 통해 독점 PCI 장치를 할당할 수 있음 |
| 리소스 오버헤드 | 메모리와 스토리지 오버헤드가 적음 | 게스트 OS용 추가 메모리 및 디스크 공간 |
| 격리 | 호스트 의존성이 커지고 커널 경계를 공유 | 드라이버와 커널을 더 강력하게 분리 |
| 이식성 | 호환되는 호스트 장치, 드라이버, ID 및 매핑에 따라 달라집니다 | 게스트 드라이버 상태는 VM과 함께 이동하지만, 물리적 PCI 매핑은 호스트에 따라 달라집니다 |
| GPU 공유 | 지원되는 경우 여러 컨테이너가 동일한 호스트 렌더 장치를 사용할 수 있습니다 | 전체 장치 패스스루는 일반적으로 해당 장치를 하나의 VM에 전용으로 할당합니다 |
| 적합한 선택 | 미디어, 직렬 USB, 공유 Linux GPU 서비스 | 독점 가속기, 독점 드라이버, 강력한 격리, 서로 다른 게스트 OS 필요 |
USB 기기가 안정적인 Linux 장치 노드처럼 작동한다면 LXC에 적합합니다
USB 시리얼 어댑터, Zigbee 코디네이터, UPS 인터페이스, Coral USB 가속기 및 유사한 장치는 Proxmox에서 장치 노드를 노출하고 올바른 소유권을 매핑하면 LXC에서 원활하게 작동할 수 있습니다. 그러면 LXC 내부의 Docker 컨테이너가 Linux 호스트 환경에서 해당 장치를 전달받습니다.
Proxmox LXC에서 USB에 액세스하는 방법을 설명한 실용적인 안내에서는 장치를 마운트하는 것만으로는 충분하지 않으며, 컨테이너에도 장치 액세스 권한을 부여해야 한다는 기본 원리를 보여 줍니다.
애플리케이션에서 지원한다면 `/dev/serial/by-id`와 같은 안정적인 경로를 사용하세요. 재부팅하거나 다시 연결하면 버스 번호와 `/dev/ttyUSB0` 할당이 바뀔 수 있습니다. 호스트를 업데이트할 때마다 cgroup, UID, GID 또는 장치 경로를 수동으로 복구해야 한다면 LXC 방식은 불안정해집니다.
USB 장치를 독립적으로 관리해야 한다면 VM이 더 깔끔합니다
VM에는 공급업체 및 제품 ID 또는 물리 포트를 기준으로 USB 장치를 연결한 다음, 자체 운영 체제 안에서 장치 드라이버를 로드할 수 있습니다. 장치에 공급업체 패키지나 다른 커널 버전이 필요하거나, Proxmox 호스트 라이브러리에 의존하지 않아야 하는 애플리케이션 스택이 필요한 경우 유용합니다.
VM은 문제 진단 경계도 더 명확하게 만들어 줍니다. 게스트에서 USB 장치가 사라지면 관리자는 하이퍼바이저의 연결 상태를 확인한 뒤 게스트 드라이버를 별도로 점검할 수 있습니다. LXC에서는 호스트 드라이버, 장치 노드, 권한, 컨테이너 매핑, Docker 런타임, 애플리케이션이 모두 하나의 연결 과정에 관여합니다.
단점은 재연결 시 동작입니다. 일부 USB 장치는 게스트가 재시작되는 동안 초기화되거나 식별 정보가 바뀌거나 사라질 수 있습니다. 처음 연결에 성공했다고 해서 안정적으로 작동한다고 단정하지 말고, 케이블 분리 및 재연결, 호스트 재부팅, 게스트 재부팅, 애플리케이션 복구를 테스트하세요.
GPU 공유에는 일반적으로 LXC가 더 적합합니다
Intel 또는 AMD 렌더링 장치와 지원되는 NVIDIA 워크로드의 경우, LXC는 호스트 GPU 장치 노드를 여러 Linux 서비스에 노출할 수 있습니다. GPU는 Proxmox 호스트 드라이버가 계속 관리하므로, PCI 장치 전체를 하나의 게스트에 할당하지 않고도 여러 컨테이너에서 하드웨어 트랜스코딩이나 컴퓨팅을 사용할 수 있습니다.
XDA의 최근 Proxmox 예시에서는 VM 패스스루로 GPU를 전용 할당하는 대신 LXC에서 호스트가 관리하는 GPU를 공유할 수 있습니다. 드라이버와 권한 요구 사항이 맞는다면 Jellyfin, Plex, Frigate 또는 여러 Docker 서비스에도 같은 운영 모델을 적용할 수 있습니다.
공유 방식에는 버전 간 호환성이 중요합니다. 호스트 커널 드라이버, LXC 내부의 사용자 공간 라이브러리, Docker 런타임 통합, 애플리케이션 패키지가 서로 호환되어야 합니다. 따라서 Proxmox 커널이나 드라이버를 업그레이드하면 GPU를 사용하는 모든 컨테이너에 한꺼번에 영향을 줄 수 있습니다.
GPU 독점 패스스루는 보통 VM에 유리합니다
개별 워크로드에 독립 GPU의 직접 소유권, 독점 게스트 드라이버, Windows 지원, CUDA 격리, 또는 Proxmox에 설치하지 않아도 되는 커널 스택이 필요한 경우 VM이 더 적합합니다. VFIO 할당은 장치를 호스트에서 분리해 게스트에 제공합니다.
Proxmox의 PCI 모델은 물리적 PCI 장치를 KVM 게스트에 할당하도록 설계되었습니다. Level1Techs의 Docker 관련 논의는 그 실질적인 차이를 잘 보여줍니다. VM은 일반적으로 패스스루한 GPU를 독점적으로 사용하는 반면, LXC는 여러 서비스가 호스트 장치에 대한 접근을 공유할 수 있습니다.
GPU가 가상화된 장치나 SR-IOV를 지원한다면 선택이 달라질 수 있지만, 소비자용 GPU와 홈 서버 플랫폼에는 보편적인 공유 방식이 없습니다. 전용 패스스루를 고려하기 전에 IOMMU 그룹, 초기화 동작, 펌웨어, 디스플레이 초기화, 호스트에서 해당 GPU가 필요한지 확인하세요.
LXC 안의 Docker는 중첩된 관리 계층을 추가합니다
LXC는 이미 운영체제 수준의 격리를 제공하고, Docker는 그 안에 또 다른 컨테이너 런타임을 추가합니다. 효율적인 구성이 될 수 있지만, 중첩 네임스페이스, cgroups, 스토리지 드라이버, 권한, 마운트 동작이 추가됩니다. 일부 Docker 기능을 사용하려면 Proxmox 컨테이너에 중첩 옵션이나 추가 권한이 필요합니다.
VM은 Docker에 일반적인 Linux 호스트를 제공합니다. 게스트가 자체 커널 설정을 관리하므로 Docker 문서, 커널 모듈, 방화벽 동작, 스토리지 드라이버를 더 쉽게 파악할 수 있습니다. 대신 완전한 게스트 OS, 예약 메모리, 가상 디스크 관리, 추가 패치 계층이 필요합니다.
필요한 설정 때문에 권한이 높은 컨테이너, 광범위한 장치 권한, 문서화되지 않은 호스트 수정이 필요하다면 수백 메가바이트를 아끼려고 LXC를 선택하지 마세요. VM이라면 게스트 내부에 담아둘 예외 사항을 매번 기억해야만 업그레이드할 수 있다면 경량 옵션의 이점은 사라집니다.
격리와 보안에 따라 성능 우위가 뒤바뀔 수 있습니다
LXC는 호스트 커널을 공유하므로 권한이 잘못 설정된 컨테이너나 지나치게 광범위한 장치 매핑으로 인해 Proxmox 노드가 의도보다 더 많이 노출될 수 있습니다. 비특권 LXC, 제한적인 장치 권한, 읽기 전용 마운트, 최소한의 기능은 격리 경계를 강화하지만, 아키텍처는 전체 VM보다 호스트와 더 밀접하게 연결되어 있습니다.
VM은 별도의 커널을 제공하므로 독점 GPU 스택, Docker 네트워킹, 방화벽 모듈, 실험용 소프트웨어를 Proxmox 기반 시스템과 분리할 수 있습니다. Docker 호스트에서 타사 이미지, 공개 서비스, 로컬 AI 패키지 또는 잦은 드라이버 실험을 실행한다면 이러한 분리가 유용합니다.
VM이 자동으로 안전한 것은 아닙니다. PCI 패스스루, 공유 스토리지 마운트, 관리 자격 증명, 브리지 네트워킹은 여전히 공격 및 장애 경로를 만듭니다. 독립된 커널과 드라이버 경계가 위협 및 유지 관리 모델을 실제로 단순화할 때 VM을 선택하세요.
백업과 마이그레이션은 서로 다른 종류의 단순성을 선호합니다
LXC 백업은 게스트에 전체 가상 하드웨어 스택이 포함되지 않으므로 크기가 작고 빠릅니다. 하지만 다른 Proxmox 노드에서 하드웨어 액세스를 복구하려면 장치 노드, 그룹, 드라이버, 권한을 일치시켜야 합니다. 컨테이너 파일 시스템은 마이그레이션할 수 있지만 물리 장치에 대한 연결 조건은 그대로 따라오지 않습니다.
VM 백업에는 게스트 운영 체제와 드라이버 구성이 포함되므로 애플리케이션을 더욱 독립적으로 복구할 수 있습니다. 그래도 대상 노드에서 USB 연결과 PCI 주소를 다시 매핑해야 하며, 패스스루 GPU는 물리 장치가 한 노드에 묶여 있으므로 라이브 마이그레이션을 막을 수 있습니다.
ZimaSpace의 Proxmox 백업 워크플로는 게스트 보호를 담당합니다. 이 비교에서 복구가 완료되려면 Docker가 시작되고 USB 또는 GPU 의존 애플리케이션이 대체 장치를 인식해야 합니다.
게스트 유형을 선택하기 전에 장치 복구 테스트를 수행하세요
- Docker 애플리케이션에 필요한 모든 USB 및 PCI 장치를 나열하세요.
- 각 장치를 호스트와 공유할지, 게스트 하나가 전용으로 사용할지 결정하세요.
- LXC의 호스트 드라이버, 장치 노드, UID/GID 매핑, Docker 권한을 테스트하세요.
- VM의 IOMMU 그룹화, 게스트 드라이버 설치, 재설정 동작을 테스트하세요.
- Proxmox 호스트를 재부팅하고 장치 연결이 자동으로 복구되는지 확인하세요.
- 백업에서 게스트를 복원하고 문서를 바탕으로 하드웨어 매핑을 다시 구성하세요.
- 마이그레이션이나 하드웨어 교체가 중요하다면 호환되는 다른 노드에서도 테스트하세요.
게스트 오버헤드만 보지 말고 애플리케이션 동작을 측정하세요. 하드웨어 트랜스코딩 안정성, USB 재연결, 드라이버 업데이트, 호스트 유지 관리, 복구 시간은 보통 LXC와 KVM 간의 작은 CPU 성능 차이보다 중요합니다.
Docker 호스트에는 어떤 Proxmox 게스트가 적합할까요?
LXC를 선택할 때
모든 워크로드가 Linux 기반이고, 호스트에서 드라이버를 관리할 수 있으며, USB 장치가 안정적인 노드를 제공하고, 여러 서비스가 GPU를 공유해야 한다면 LXC를 선택하세요. 가능하면 컨테이너의 권한을 제한하고 모든 장치 및 그룹 매핑을 문서화하세요.
VM을 선택할 때
Docker 호스트가 PCI GPU를 독점적으로 사용해야 하거나, 독점 또는 실험용 드라이버가 필요하거나, 커널 격리를 강화하거나, 전체 소프트웨어 스택의 이식성을 높이고 싶다면 VM을 선택하세요. 게스트에 충분한 RAM과 스토리지를 할당하고 재부팅 후 장치 재설정을 테스트하세요.
워크로드를 나눌 때
가벼운 미디어 및 USB 서비스는 LXC에서 실행하고, GPU를 독점적으로 사용하는 컴퓨팅 작업, Windows 종속 도구 또는 신뢰할 수 없는 Docker 스택은 VM에 배치하세요. Proxmox를 지원하는 플랫폼은 두 가지 모두 실행할 수 있지만, 각 물리 장치의 소유권 관리 방식을 문서화해야 합니다.
자주 묻는 질문
권한이 없는 LXC 안에서 Docker를 안정적으로 실행할 수 있나요?
많은 워크로드에서 가능합니다. 다만 중첩, 스토리지 드라이버, 마운트, 네트워킹, 장치 액세스에는 추가 구성이 필요할 수 있습니다. 필요한 Docker 기능을 정확히 테스트하고, 원인을 알 수 없는 권한 문제를 우회하려고 권한 있는 컨테이너로 바꾸지 마세요.
GPU 하나를 LXC와 VM에서 모두 사용할 수 있나요?
일반적인 전체 장치 VFIO 패스스루로는 동시에 사용할 수 없습니다. LXC는 호스트가 관리하는 렌더 장치를 공유할 수 있지만, VM은 보통 해당 장치를 호스트에서 분리해야 합니다. 일부 하드웨어에서는 SR-IOV 또는 매개 장치 지원을 통해 이 방식이 달라질 수 있습니다.
USB Zigbee 코디네이터에는 어떤 옵션이 더 나을까요?
둘 다 사용할 수 있습니다. 안정적인 serial-by-ID 경로와 권한을 보장할 수 있다면 LXC가 효율적입니다. 코디네이터의 소프트웨어 스택이나 드라이버를 Proxmox 호스트와 분리해야 한다면 VM이 더 적합합니다.
최종 결론
USB와 GPU 리소스를 Proxmox 호스트의 Linux 드라이버 스택을 통해 공유할 수 있고 오버헤드가 낮아야 한다면 Docker 호스트에 LXC를 사용하세요. 하드웨어를 게스트가 전용으로 사용해야 하거나, 드라이버를 격리해야 하거나, 복구 시 독립적으로 구동되는 운영체제를 보존해야 한다면 VM을 사용하세요. 컨테이너가 언제나 더 간단하다고 가정하지 말고, 장치 소유권과 복원 방식을 기준으로 선택하세요.
제품 비교
더 읽어보기

로컬 코딩용 Ripple-65B와 Qwen3.8-27B 비교: 내 컴퓨터에 어떤 모델이 맞을까요?
Ripple-65B Preview 및 Qwen3.8-27B를 위한 로컬 하드웨어와 런타임 선택지를 비교하고, 코딩 에이전트 워크로드를 위한 통제된 테스트 계획을 제시합니다.

LFM2.5-24B-A2B와 DeepSeek API 비교: 홈 서버 에이전트 워크플로에 더 잘 맞는 것은?
홈 서버 에이전트용 LFM2.5-24B-A2B 로컬 추론과 DeepSeek API를 비교해 보세요. 개인정보 보호 범위, 하드웨어, 유지 관리, 품질, 비용을 살펴봅니다.

Granite Speech 5.0 vs 클라우드 음성 전사: 개인정보 보호, 하드웨어 및 정확도 비교
오디오 개인정보 보호, 설정, 하드웨어, 정확도, 유지 관리, NAS 아카이브 워크플로를 기준으로 로컬 Granite Speech 5.0과 클라우드 음성 변환 서비스를 비교해 보세요.



