Dispositivi nei contenitori in Windows
Per impostazione predefinita, ai contenitori di Windows viene concesso l'accesso minimo ai dispositivi host, come per i contenitori di Linux. Esistono determinati carichi di lavoro in cui è vantaggioso, o addirittura necessario, accedere e comunicare con i dispositivi hardware host. Questa guida illustra i dispositivi supportati nei contenitori e come iniziare a usarli.
Requisiti
Per il funzionamento di questa funzionalità, l'ambiente deve soddisfare i requisiti seguenti:
- L'host contenitore deve eseguire Windows Server 2019 o Windows 10, versione 1809 o successive.
- La versione dell'immagine di base del contenitore deve essere 1809 o successive.
- I contenitori devono essere contenitori di Windows in esecuzione in modalità di isolamento del processo.
- L'host contenitore deve eseguire il motore Docker 19.03 o versioni successive.
Eseguire un contenitore con un dispositivo
Per avviare un contenitore con un dispositivo, usa il comando seguente:
docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
Devi sostituire {interface class guid}
con un GUID della classe di interfaccia del dispositivo appropriato, disponibile nella sezione seguente.
Per avviare un contenitore con più dispositivi, usa il comando e la stringa seguenti con più argomenti --device
:
docker run --isolation=process --device="class/{interface class GUID}" --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
In Windows tutti i dispositivi dichiarano un elenco di classi di interfaccia che implementano. Passando questo comando a Docker, si garantisce che verrà eseguito il plumbing di tutti i dispositivi che implementano la classe richiesta nel contenitore.
Ciò significa che non assegni il dispositivo all'host. L'host lo condivide invece con il contenitore. Analogamente, poiché specifichi un GUID di classe, tutti i dispositivi che implementano tale GUID verranno condivisi con il contenitore.
Dispositivi supportati
Attualmente sono supportati i dispositivi (e i relativi GUID della classe di interfaccia del dispositivo) seguenti:
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
Importante
Il supporto del dispositivo è dipendente dal driver. Il tentativo di passare i GUID della classe non definiti nella tabella precedente può causare un comportamento indefinito.
Supporto di contenitori di Windows con isolamento Hyper-V
L'assegnazione e la condivisione dei dispositivi per i carichi di lavoro nei contenitori di Windows con isolamento Hyper-V non sono attualmente supportate.
Supporto di contenitori di Linux con isolamento Hyper-V
L'assegnazione e la condivisione dei dispositivi per i carichi di lavoro nei contenitori di Linux con isolamento Hyper-V non sono attualmente supportate.