Geräte in Containern unter Windows
Standardmäßig erhalten Windows-Container minimalen Zugriff auf Hostgeräte – genau wie Linux-Container. Es gibt bestimmte Workloads, bei denen es vorteilhaft (oder sogar erforderlich) ist, auf Hosthardwaregeräte zuzugreifen und mit ihnen zu kommunizieren. In diesem Leitfaden erfahren Sie, welche Geräte in Containern unterstützt werden und wie Sie die ersten Schritte unternehmen können.
Anforderungen
Damit dieses Feature funktioniert, muss Ihre Umgebung die folgenden Anforderungen erfüllen:
- Auf dem Containerhost muss Windows Server 2019 oder Windows 10, Version 1809 oder höher, ausgeführt werden.
- Ihre Basisimageversion für den Container muss 1809 oder höher sein.
- Ihre Container müssen Windows-Container sein, die im prozessisolierten Modus ausgeführt werden.
- Auf dem Containerhost muss das Docker-Modul 19.03 oder höher ausgeführt werden.
Ausführen eines Containers mit einem Gerät
Verwenden Sie den folgenden Befehl, um einen Container mit einem Gerät zu starten:
docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
Sie müssen die {interface class guid}
durch eine entsprechende Geräteschnittstellenklasse-GUID ersetzen, die im folgenden Abschnitt zu finden ist.
Verwenden Sie zum Starten eines Containers mit mehreren Geräten den folgenden Befehl, und fügen Sie mehrere --device
-Argumente aneinander:
docker run --isolation=process --device="class/{interface class GUID}" --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
In Windows deklarieren alle Geräte eine Liste von Schnittstellenklassen, die sie implementieren. Indem dieser Befehl an Docker übergeben wird, stellt dieser sicher, dass alle Geräte, die die angeforderte Klasse implementieren, in den Container integriert werden.
Dies bedeutet, dass Sie nicht das Gerät vom Host entfernt zuweisen. Stattdessen nutzt der Host es gemeinsam mit dem Container. Ebenso werden, da Sie eine Klassen-GUID angeben, alle Geräte, die diese GUID implementieren, mit dem Container gemeinsam genutzt.
Welche Geräte werden unterstützt?
Die folgenden Geräte (und ihre Geräteschnittstellenklassen-GUIDs) werden heute unterstützt:
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
Wichtig
Die Geräteunterstützung ist vom Treiber abhängig. Der Versuch, Klassen-GUIDs zu übergeben, die nicht in der obigen Tabelle definiert sind, kann zu undefiniertem Verhalten führen.
Unterstützung für Windows-Container mit Hyper-V-Isolation
Gerätezuweisung und Gerätefreigabe für Workloads in Windows-Containern mit Hyper-V-Isolation wird derzeit nicht unterstützt.
Unterstützung von Linux-Containern mit Hyper-V-Isolation
Gerätezuweisung und Gerätefreigabe für Workloads in Linux-Containern mit Hyper-V-Isolation wird derzeit nicht unterstützt.