권한이 높은 홈 서비스가 제한된 마운트를 사용하는 하나의 선언적 애플리케이션으로 유지될 수 있다면 Docker가 더 안전한 기본 선택입니다. 실제로 소규모 Linux 시스템이 필요한 경우에는 LXC가 더 깔끔하지만, 어느 쪽도 별도의 커널 경계를 만들지는 않습니다.
결정적인 문제는 어느 이름이 더 격리된 것처럼 들리느냐가 아닙니다. 둘 다 호스트 커널 격리에 의존합니다. 실제로 부여된 권한, 노출된 장치와 파일, 패치 및 복원하는 단위, 탈출이 발생했을 때의 영향을 비교해야 합니다. 공유 커널 노출 자체를 받아들일 수 없다면 Docker와 LXC를 비교하지 말고 VM이나 별도의 호스트를 사용하세요.
기능을 비교하기 전에 공유 커널 경계를 받아들이세요
Docker는 일반적으로 애플리케이션과 그 종속성을 패키징하고, LXC는 init, 계정, 패키지, 시스템 서비스가 포함된 더 완전한 Linux 사용자 공간을 제공합니다. 이러한 운영상의 차이가 LXC에 독립적인 게스트 커널을 제공하는 것은 아닙니다.
Linux 컨테이너 격리에 관한 연구에서는 네임스페이스와 정책 메커니즘이 서로 맞물린 형태로 구성되어 있어 그 의미를 감사하기 어려울 수 있다고 설명합니다. 이 공유 커널 격리의 한계는 두 후보 모두에 적용되며, 커널 분리가 필수인 경우 어느 쪽도 해결책이 될 수 없게 만듭니다.
신뢰할 수 있거나 범위가 제한된 워크로드에 대해서만 두 선택지를 계속 고려하세요. 침해가 호스트 커널에 직접 도달해서는 안 되는 경우 인터넷에 노출된 코드, 출처를 알 수 없는 이미지, 또는 영향이 큰 자동화는 VM으로 옮기세요.
필요한 권한에 따라 기본 선택을 바꾸세요
서비스에 몇 가지 명시적인 기능, 읽기 전용 구성, 하나 또는 두 개의 영구 경로만 필요하다면 Docker가 여전히 매력적입니다. Compose 정의를 사용하면 검토 중 이러한 예외를 눈에 띄게 만들 수 있습니다.
일반적인 Linux 시스템, 여러 데몬, 패키지 관리자 또는 안정적인 시스템 수준 네트워킹을 필요로 하는 서비스에는 LXC가 적합합니다. 비특권 LXC는 유용한 UID 매핑을 유지하지만, 특권 모드, 중첩, 광범위한 바인드 마운트는 이러한 장점을 약화합니다.
특권 확인란을 선택하는 대신 예외 사항을 세어 보세요. 어느 설계든 호스트 네트워킹, 컨테이너 관리 소켓, 쓰기 가능한 시스템 마운트, 모든 장치 또는 제한 없는 프로필이 필요하다면 액세스 경로를 다시 설계하거나 공유 커널 계층을 벗어나세요.
장치 및 스토리지 액세스가 피해 범위를 결정합니다
USB 코디네이터, GPU 렌더링 노드, UPS 인터페이스 또는 미디어 디렉터리는 서비스가 허용하는 범위 내에서 최대한 제한적으로 노출해야 합니다. 안정적인 장치 경로, 읽기 전용 마운트, 명시적인 UID/GID 소유권은 편의 설정인 동시에 격리 제어 수단입니다.
최근 Proxmox 배포 사례는 비특권 LXC가 Docker 기반 서비스를 별도의 복원 단위로 격리하면서도 호스트 커널과 스토리지 스택을 공유할 수 있음을 보여줍니다. 이 작은 피해 범위의 LXC 패턴은 중첩 및 스토리지 드라이버 예외 사항이 문서화되어 있을 때만 유용합니다.
하나의 앱에 하나의 작은 데이터 경계만 필요하다면 Docker를 우선하세요. 여러 시스템 서비스가 함께 속한다면 LXC를 우선하세요. 한 번의 침해로 백업, 하이퍼바이저 제어 영역 또는 가족의 다른 데이터에 쓰기 권한을 얻을 수 있다면 어느 레이아웃도 선택하지 마세요.
패치하고 복원할 단위를 비교하세요
Docker 롤백은 일반적으로 이전 Compose 리비전과 이미지, 그리고 애플리케이션과 일관된 데이터를 복원하는 것을 의미합니다. LXC 롤백은 전체 사용자 공간을 복원할 수 있어 편리하지만, 오래된 패키지, 자격 증명, 숨겨진 수동 변경 사항까지 되살릴 수 있습니다.
각 후보를 폐기 가능한 호스트에서 다시 구축하세요. Docker의 경우 정의, 보안 정보, 볼륨을 복원하고, LXC의 경우 컨테이너를 재생성하거나 복원한 뒤 패키지, 네트워크, 장치, 마운트 상태를 확인하세요. 더 낮은 유휴 메모리 사용량보다 성공적인 복원 테스트를 더 쉽게 수행할 수 있는지가 강력한 근거입니다.
VM, LXC, Docker 서비스 경계에 관한 더 광범위한 ZimaSpace 결정은 독립적인 커널을 계속 고려해야 할 때 다음 단계입니다.
조건부 결론: 실패를 계속 가둘 수 있는 가장 좁은 경계를 선택하세요
장치, 기능, 보안 정보, 영구 경로를 명시적이고 최소한으로 유지할 수 있는 잘 패키징된 신뢰할 수 있는 단일 애플리케이션에는 Docker를 선택하세요.
init, 패키지, 여러 데몬 또는 시스템 수준 네트워킹의 이점을 실제로 필요로 하는 신뢰할 수 있는 Linux 서비스 환경에는 LXC를 선택하되, 가능한 한 비특권 방식으로 운영하세요.
워크로드에 광범위한 호스트 제어 권한이 필요하거나, 영향이 큰 악성 입력을 처리하거나, 호스트 커널 침해에도 견뎌야 한다면 어느 쪽도 선택하지 마세요. 그 시점에는 VM이나 별도의 시스템이 과도한 설계가 아니라, 빠져 있는 보안 경계입니다.
제품 비교
더 읽어보기

앱 업데이트 및 롤백을 위한 Proxmox의 LXC와 Docker 비교
Docker는 앱 수준의 버전 관리를 제공하고, LXC는 게스트 수준의 롤백을 제공합니다. 더 적합한 선택은 안전하게 복원할 수 있는 가장 작은 상태 단위에 따라 결정됩니다.

처음 구축하는 사용자를 위한 턴키 NAS OS와 모듈형 Linux 비교
안내형 스토리지 운영을 원한다면 즉시 사용 가능한 NAS 소프트웨어를 선택하고, 학습과 명시적인 제어를 위해 더 많은 관리 책임을 감수할 가치가 있다면 모듈형 Linux를 선택하세요.

NAS 웹 인터페이스는 일반 Linux보다 복구 작업을 줄여 주나요?
NAS 인터페이스는 구성 내보내기, 풀 가져오기 및 지원되는 워크플로가 장애가 발생한 시스템에서도 유지되는 경우에만 일상적인 복구 작업을 줄여 줍니다.

