Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som standard får Windows-containrar minimal åtkomst till värdenheter – precis som Linux-containrar. Det finns vissa arbetsbelastningar där det är fördelaktigt – eller till och med imperativt – att komma åt och kommunicera med värdmaskinvaraenheter. Den här guiden beskriver vilka enheter som stöds i containrar och hur du kommer igång.
Förutsättningar
För att den här funktionen ska fungera måste din miljö uppfylla följande krav:
- Värd för containrar måste köra Windows Server 2019 eller Windows 10, version 1809 eller senare.
- Din containerbasbildversion måste vara 1809 eller senare.
- Containrarna måste vara Windows-containrar som körs i processisolerade läge.
- Containervärden måste köra Docker Engine 19.03 eller senare.
Kör en container med en enhet
Om du vill starta en container med en enhet använder du följande kommando:
docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
Du måste ersätta {interface class guid} med en lämplig GUID för enhetsgränssnittsklassen, som du hittar i avsnittet nedan.
Om du vill starta en container med flera enheter använder du följande kommando och sträng tillsammans flera --device argument:
docker run --isolation=process --device="class/{interface class GUID}" --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
I Windows deklarerar alla enheter en lista över gränssnittsklasser som de implementerar. Genom att skicka det här kommandot till Docker ser det till att alla enheter som identifierar sig som implementerar den begärda klassen kommer att skickas till containern.
Det innebär att du inte tilldelar enheten från värden. I stället delar värddatorn den med containern. Eftersom du anger ett GUID för klassen alla enheter som implementerar det GUID:et delas med containern.
Vilka enheter stöds
Följande enheter (och deras GUID för enhetsgränssnittsklass) stöds idag:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Viktig
Enhetsstöd är drivrutinsberoende. Om du försöker skicka klass-GUID:er som inte definierats i tabellen ovan kan det leda till odefinierat beteende.
Stöd för Hyper-V-isolerade Windows-containrar
Enhetstilldelning och enhetsdelning för arbetsbelastningar i Hyper-V-isolerade Windows-containrar stöds inte för närvarande.
Stöd för Hyper-V-isolerad Linux-container
Enhetstilldelning och enhetsdelning för arbetsbelastningar i Hyper-V-isolerade Linux-containrar stöds inte för närvarande.