共用方式為


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 Bus
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 容器中對工作負載進行裝置指派和裝置共用。