共用方式為


Windows 上容器中的裝置

根據預設,Windows 容器會獲得最少的主機裝置存取權,就像 Linux 容器一樣。 某些工作負載訪問並與主機硬體裝置通訊是有益的,甚至是必要的。 本指南涵蓋容器中支援哪些裝置,以及如何開始使用。

先決條件

若要讓這項功能運作,您的環境必須符合下列需求:

  • 容器主機必須執行 Windows Server 2019 或 Windows 10 版本 1809 或更新版本。
  • 您的容器基底映像版本必須是 1809 或更新版本。
  • 您的容器必須是以進程隔離模式執行的 Windows 容器。
  • 容器主機必須執行 Docker Engine 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 總線
DCDE6AF9-6610-4285-828F-CAAF78C424CC
DirectX GPU 加速
請參閱 GPU 加速 文件

重要

裝置支援依賴於驅動程式。 嘗試傳遞上述數據表中未定義的類別 GUID 可能會導致未定義的行為。

Hyper-V 隔離的 Windows 容器支援

目前不支援 Hyper-V 隔離 Windows 容器中工作負載的裝置指派和裝置共用。

Hyper-V 隔離的Linux容器支援

目前不支援 Hyper-V 隔離 Linux 容器中工作負載的裝置指派和裝置共用。