Urządzenia w kontenerach w systemie Windows
Domyślnie kontenery systemu Windows mają minimalny dostęp do urządzeń hostów — podobnie jak kontenery systemu Linux. Istnieją pewne obciążenia, w których jest korzystne — a nawet imperatywne — uzyskiwanie dostępu do urządzeń sprzętowych hosta i komunikowanie się z nimi. W tym przewodniku opisano, które urządzenia są obsługiwane w kontenerach i jak rozpocząć pracę.
Warunki wstępne
Aby ta funkcja działała, środowisko musi spełniać następujące wymagania:
- Host kontenera musi mieć system Windows Server 2019 lub Windows 10 w wersji 1809 lub nowszej.
- Wersja obrazu podstawowego kontenera musi być 1809 lub nowsza.
- Kontenery muszą być kontenerami systemu Windows działającymi w trybie izolacji procesów.
- Host kontenera musi mieć uruchomiony Docker Engine w wersji 19.03 lub nowszej.
Uruchamianie kontenera z urządzeniem
Aby uruchomić kontener z urządzeniem, użyj następującego polecenia:
docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
Należy zastąpić {interface class guid}
odpowiednim identyfikatorem GUID klasy interfejsu urządzenia , który znajduje się w poniższej sekcji.
Aby uruchomić kontener z wieloma urządzeniami, użyj następującego polecenia i połącz wiele argumentów --device
.
docker run --isolation=process --device="class/{interface class GUID}" --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
W systemie Windows wszystkie urządzenia deklarują listę klas interfejsów, które implementują. Przekazując to polecenie do platformy Docker, upewni się, że wszystkie urządzenia, które identyfikują się jako implementujące żądaną klasę, zostaną spakowane do kontenera.
Oznacza to, że nie przypisywania urządzenia z dala od hosta. Zamiast tego host udostępnia go kontenerowi. Podobnie, ponieważ określasz identyfikator GUID klasy, wszystkie urządzenia, które implementują ten identyfikator GUID, zostaną udostępnione kontenerowi.
Jakie urządzenia są obsługiwane
Obecnie obsługiwane są następujące urządzenia (i identyfikatory GUID klasy interfejsu urządzenia):
|
GUID klasy interfejsu |
---|---|
|
|
|
|
|
|
|
|
|
|
Ważny
Obsługa urządzeń jest zależna od sterownika. Próba przekazania identyfikatorów GUID klasy, które nie zostały zdefiniowane w powyższej tabeli, może spowodować niezdefiniowane zachowanie.
Obsługa kontenerów Hyper-V izolowanych w systemie Windows
Przypisywanie urządzeń i udostępnianie urządzeń dla obciążeń w kontenerach Windows izolowanych przez Hyper-V nie jest obecnie obsługiwane.
Obsługa kontenerów Linux izolowanych przez Hyper-V
Obecnie przypisywanie i udostępnianie urządzeń dla obciążeń w kontenerach Linux izolowanych przez Hyper-V nie jest obsługiwane.