Dispositivi nei contenitori in Windows
Per impostazione predefinita, ai contenitori Windows viene concesso l'accesso minimo ai dispositivi host, proprio come i contenitori Linux. Esistono determinati carichi di lavoro in cui è vantaggioso, o anche imperativo, accedere e comunicare con i dispositivi hardware host. Questa guida illustra quali dispositivi sono supportati nei contenitori e come iniziare.
Prerequisiti
Per il corretto 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 successiva.
- La versione dell'immagine di base del contenitore deve essere 1809 o successiva.
- I contenitori devono essere contenitori windows in esecuzione in modalità isolata dal processo.
- L'host contenitore deve eseguire il motore Docker 19.03 o versione successiva.
Eseguire un contenitore con un dispositivo
Per avviare un contenitore con un dispositivo, usare il comando seguente:
docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
È necessario sostituire il {interface class guid}
con un GUID della classe di interfaccia dispositivo appropriato, disponibile nella sezione seguente.
Per avviare un contenitore con più dispositivi, utilizzare il comando seguente concatenando 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 implementate. Passando questo comando a Docker, si assicura che tutti i dispositivi che si identificano come implementanti la classe richiesta verranno collegati nel contenitore.
Ciò significa che non stai assegnando il dispositivo all'host. Invece, l'host lo condivide con il contenitore. Analogamente, poiché si specifica un GUID di classe, tutti i dispositivi che implementano tale GUID verranno condivisi con il contenitore.
Quali dispositivi sono supportati
I dispositivi seguenti (e i RELATIVI GUID della classe di interfaccia dispositivo) sono attualmente supportati:
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
Importante
Il supporto del dispositivo dipende dal driver. Il tentativo di passare GUID di classe non definito nella tabella precedente può comportare un comportamento non definito.
Supporto per contenitori Windows isolati da Hyper-V
L'assegnazione dei dispositivi e la condivisione dei dispositivi per i carichi di lavoro nei contenitori Windows isolati hyper-V non sono attualmente supportati.
Supporto per i container Linux isolati Hyper-V
L'assegnazione dei dispositivi e la condivisione dei dispositivi per i carichi di lavoro nei contenitori Linux isolati hyper-V non sono attualmente supportati.