Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Por padrão, os contêineres do Windows recebem acesso mínimo aos dispositivos host, assim como os contêineres do Linux. Há determinadas cargas de trabalho em que é benéfico ou até mesmo imperativo acessar e se comunicar com dispositivos de hardware de host. Este guia aborda quais dispositivos têm suporte em contêineres e como começar.
Pré-requisitos
Para que esse recurso funcione, seu ambiente deve atender aos seguintes requisitos:
- O host de contêiner deve estar executando o Windows Server 2019 ou o Windows 10, versão 1809 ou mais recente.
- A versão da imagem base do contêiner deve ser 1809 ou posterior.
- Seus contêineres devem ser contêineres do Windows em execução no modo isolado do processo.
- O host de contêiner deve estar executando o Docker Engine 19.03 ou mais recente.
Executar um contêiner com um dispositivo
Para iniciar um contêiner com um dispositivo, use o seguinte comando:
docker run --isolation=process --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
Substitua {interface class guid} pelo GUID de classe de interface de dispositivo apropriado, que pode ser encontrado na seção abaixo.
Para iniciar um contêiner com vários dispositivos, use o seguinte comando e encadeie vários argumentos --device.
docker run --isolation=process --device="class/{interface class GUID}" --device="class/{interface class GUID}" mcr.microsoft.com/windows/servercore:1809
No Windows, todos os dispositivos declaram uma lista de classes de interface que implementam. Ao passar esse comando para o Docker, ele garantirá que todos os dispositivos que se identificarem como implementando a classe solicitada serão inseridos no contêiner.
Isso significa que você não está atribuindo o dispositivo para longe do host. Em vez disso, o host está compartilhando-o com o contêiner. Da mesma forma, como você está especificando um GUID de classe, todos os dispositivos que implementam esse GUID serão compartilhados com o contêiner.
Quais dispositivos têm suporte
Os seguintes dispositivos (e seus GUIDs da classe de interface do dispositivo) têm suporte hoje:
Importante
O suporte ao dispositivo depende do driver. A tentativa de passar GUIDs de classe não definidas na tabela acima pode resultar em um comportamento indefinido.
Suporte para contêineres isolados do Hyper-V no Windows
Atualmente, não há suporte para atribuição de dispositivo e compartilhamento de dispositivos para cargas de trabalho em contêineres do Windows isolados do Hyper-V.
Suporte ao contêiner Linux isolado pelo Hyper-V
Atualmente, não há suporte para atribuição de dispositivos e compartilhamento de dispositivos para cargas de trabalho em contêineres linux isolados do Hyper-V.