다음을 통해 공유


Windows의 컨테이너에 있는 디바이스

기본적으로 Windows 컨테이너는 Linux 컨테이너와 마찬가지로 호스트 디바이스에 대한 최소한의 액세스 권한을 부여합니다. 호스트 하드웨어 디바이스에 액세스하고 통신하는 데 도움이 되는 특정 워크로드 또는 명령적 워크로드가 있습니다. 이 가이드에서는 컨테이너에서 지원되는 디바이스와 시작하는 방법을 설명합니다.

필수 구성 요소

이 기능이 작동하려면 환경이 다음 요구 사항을 충족해야 합니다.

  • 컨테이너 호스트는 Windows Server 2019 또는 Windows 10 버전 1809 이상을 실행해야 합니다.
  • 컨테이너 기본 이미지 버전은 1809 이상이어야 합니다.
  • 컨테이너는 프로세스 격리 모드에서 실행되는 Windows 컨테이너여야 합니다.
  • 컨테이너 호스트는 Docker 엔진 19.03 이상을 실행해야 합니다.

디바이스를 사용하여 컨테이너 실행

디바이스로 컨테이너를 시작하려면 다음 명령을 사용합니다.

docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809

{interface class guid}을(를) 아래 섹션에서 찾을 수 있는 적절한 디바이스 인터페이스 클래스 GUID로 교체해야 합니다.

여러 디바이스로 컨테이너를 시작하려면 다음 명령을 사용하고 여러 --device 인수를 연결하세요.

docker run --isolation=process --device="class/{interface class GUID}" --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809

Windows에서 모든 디바이스는 구현하는 인터페이스 클래스 목록을 선언합니다. 이 명령을 Docker에 전달하면 요청된 클래스를 구현하는 것으로 식별되는 모든 디바이스가 컨테이너에 배관됩니다.

즉, 호스트에서 디바이스를 할당하지 . 대신 호스트가 컨테이너와 공유합니다. 마찬가지로 클래스 GUID를 지정하기 때문에 해당 GUID를 구현하는 모든 디바이스를 컨테이너와 공유됩니다.

지원되는 디바이스

현재 지원되는 디바이스(및 해당 디바이스 인터페이스 클래스 GUID)는 다음과 같습니다.

디바이스 유형
인터페이스 클래스 GUID
GPIO
916EF1CB-8426-468D-A6F7-9AE8076881B3
I2C 버스
A11EE3C6-8421-4202-A3E7-B91FF90188E4
COM 포트
86E0D1E0-8089-11D0-9CE4-08003E301F73
SPI Bus
DCDE6AF9-6610-4285-828F-CAAF78C424CC
DirectX GPU 가속
GPU 가속 문서를 확인하십시오

중요하다

디바이스 지원은 드라이버에 따라 다릅니다. 위의 표에 정의되지 않은 클래스 GUID를 전달하려고 하면 정의되지 않은 동작이 발생할 수 있습니다.

Hyper-V 격리 Windows 컨테이너 지원

Hyper-V 격리 Windows 컨테이너의 워크로드에 대한 디바이스 할당 및 디바이스 공유는 현재 지원되지 않습니다.

Hyper-V 격리된 Linux 컨테이너 지원

Hyper-V 격리 Linux 컨테이너의 워크로드에 대한 디바이스 할당 및 디바이스 공유는 현재 지원되지 않습니다.