Zařízení v kontejnerech ve Windows
Ve výchozím nastavení mají kontejnery Windows minimální přístup k hostitelským zařízením – stejně jako kontejnery Linuxu. Existují určité úlohy, ve kterých je výhodné – nebo dokonce nezbytné – přistupovat a komunikovat s hostitelskými hardwarovými zařízeními. Tato příručka popisuje, která zařízení jsou podporována v kontejnerech a jak začít.
Požadavky
Aby tato funkce fungovala, musí vaše prostředí splňovat následující požadavky:
- Hostitel kontejneru musí používat Windows Server 2019 nebo Windows 10 verze 1809 nebo novější.
- Verze základní image kontejneru musí být 1809 nebo novější.
- Vaše kontejnery musí být Windows kontejnery spuštěné v izolovaném režimu procesu.
- Hostitel kontejneru musí používat Docker Engine 19.03 nebo novější.
Spusťte kontejner se zařízením
Pokud chcete spustit kontejner se zařízením, použijte následující příkaz:
docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
Musíte nahradit {interface class guid}
odpovídajícím identifikátorem GUID třídy rozhraní zařízení , který najdete v následující části.
Pokud chcete spustit kontejner s více zařízeními, použijte následující příkaz a spojte dohromady více argumentů --device
:
docker run --isolation=process --device="class/{interface class GUID}" --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
Ve Windows všechna zařízení deklarují seznam tříd rozhraní, které implementují. Předáním tohoto příkazu do Dockeru zajistíte, že všechna zařízení, která jsou identifikována jako implementující požadovanou třídu, budou připojena do kontejneru.
To znamená, že nepřiřazujete zařízení pryč od hostitele. Místo toho ho hostitel sdílí s kontejnerem. Stejně tak, protože zadáváte identifikátor GUID třídy, všechna zařízení, která implementují tento identifikátor GUID, budou sdílena s kontejnerem.
Jaká zařízení jsou podporovaná
Dnes se podporují následující zařízení (a identifikátory GUID třídy rozhraní zařízení):
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
Důležitý
Podpora zařízení je závislá na ovladači. Pokus o předání identifikátorů GUID tříd, které nejsou definovány v tabulce výše, může vést k nedefinovaným chování.
Podpora kontejneru Windows v izolovaném prostředí Hyper-V
Přiřazení zařízení a sdílení zařízení pro úlohy v kontejnerech s Windows v izolovaném prostředí Hyper-V se v současné době nepodporuje.
Podpora kontejnerů s Linuxem v izolovaném prostředí Hyper-V
Přiřazení zařízení a sdílení zařízení pro úlohy v kontejnerech s Linuxem v izolovaném prostředí Hyper-V se v současné době nepodporuje.