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