Windows 上のコンテナー内のデバイス
既定で、Windows コンテナーには、Linux コンテナーと同様に、ホスト デバイスへの最小限のアクセス権が付与されます。 ホストのハードウェア デバイスにアクセスして通信することが役に立つ (または必須でさえある) 特定のワークロードがあります。 このガイドでは、コンテナーでサポートされているデバイスについてと、開始する方法について説明します。
要件
この機能が動作するには、お使いの環境が次の要件を満たしている必要があります。
- コンテナー ホストでは、Windows Server 2019 または Windows 10 バージョン 1809 以降が実行されている必要があります。
- コンテナーの基本イメージのバージョンは、1809 以降である必要があります。
- コンテナーは、プロセス分離モードで実行されている Windows コンテナーである必要があります。
- コンテナー ホストでは、Docker エンジン 19.03 以降が実行されている必要があります。
デバイスでコンテナーを実行する
デバイスでコンテナーを起動するには、次のコマンドを使用します。
docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
{interface class guid}
は、次のセクションで説明されている適切なデバイス インターフェイス クラス GUID に置き換える必要があります。
複数のデバイスでコンテナーを起動するには、次のコマンドを使用して、複数の --device
引数を結び合わせます。
docker run --isolation=process --device="class/{interface class GUID}" --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
Windows では、すべてのデバイスで、デバイスが実装するインターフェイス クラスのリストが宣言されます。 このコマンドを Docker に渡すことにより、要求されたクラスを実装中であるとして識別されるすべてのデバイスが、確実にコンテナーに組み込まれます。
したがって、デバイスをホストと切り離して割り当てるのではありません。 むしろ、ホストはデバイスをコンテナーと共有します。 同様に、ユーザーはクラス GUID を指定しているので、その GUID を実装するすべてのデバイスがコンテナーと共有されます。
サポートされるデバイス
現在、次のデバイス (およびそのデバイス インターフェイス クラス GUID) がサポートされています。
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
重要
デバイスのサポートはドライバーによって異なります。 上の表で定義されていないクラス GUID を渡そうとすると、未定義の動作が発生する可能性があります。
Hyper-V で分離された Windows コンテナーのサポート
Hyper-V で分離された Windows コンテナーのワークロードのデバイス割り当てやデバイス共有は、現在サポートされていません。
Hyper-V で分離された Linux コンテナーのサポート
Hyper-V で分離された Linux コンテナーのワークロードのデバイス割り当てやデバイス共有は、現在サポートされていません。