根據預設,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 可能會導致未定義的行為。
Hyper-V 隔離的 Windows 容器支援
目前不支援 Hyper-V 隔離 Windows 容器中工作負載的裝置指派和裝置共用。
Hyper-V 隔離的Linux容器支援
目前不支援 Hyper-V 隔離 Linux 容器中工作負載的裝置指派和裝置共用。