Estou tentando instalar e executar o Docker em uma VM do Windows para entender melhor o tempo de execução do trabalho de recebimento de dados, e estou lidando com os problemas que estão iniciando o contêiner hello-world
.
Ambiente:
- hardware virtual VMWare:
- 4 GB de RAM
- CPU Intel Xenon (2 núcleos)
- Windows Server 2016 Standard (versão 1607)
- Algumas considerações sobre antivírus e firewall (estou obtendo mais informações sobre elas)
Saída de docker version
:
Client:
Version: 17.06.2-ee-6
API version: 1.30
Go version: go1.8.3
Git commit: e75fdb8
Built: Mon Nov 27 22:46:09 2017
OS/Arch: windows/amd64
Server:
Version: 17.06.2-ee-6
API version: 1.30 (minimum version 1.24)
Go version: go1.8.3
Git commit: e75fdb8
Built: Mon Nov 27 22:55:16 2017
OS/Arch: windows/amd64
Experimental: false
O que funcionou:
O que não tem:
Executando qualquer contêiner. Nós tentamos alguns:
-
hello-world:nanoserver
-
hello-world:latest
-
microsoft/nanoserver:latest
-
microsoft/windowsservercore:latest
O que eu já tentei (sem sucesso):
- Relaxando nossas configurações de política de grupo
- Ativando o componente opcional do Hyper-V para Windows
O que realmente acontece:
Quando tento iniciar um contêiner usando docker run {container-name-here}
, o PowerShell fica suspenso por um período substancial (alguns minutos) e imprime a seguinte mensagem:
C:\Program Files\docker\docker.exe: Error response from daemon: container
{container-id-here} encountered an error during Start: failure in a
Windows system call: This operation returned because the timeout
period expired. (0x5b4).
No docker events
log, recebo as seguintes mensagens ao mesmo tempo:
2018-04-18T09:36:27.881680400-04:00 container create {container-id-here} (image=hello-world:nanoserver, name=confident_ardinghelli)
2018-04-18T09:36:27.883680800-04:00 container attach {container-id-here} (image=hello-world:nanoserver, name=confident_ardinghelli)
2018-04-18T09:36:28.753726900-04:00 network connect {network-id-here} (container={container-id-here}, name=nat, type=nat)
2018-04-18T09:40:21.373395500-04:00 network disconnect {network-id-here}(container={container-id-here}, name=nat, type=nat)
Recebemos a mensagem de tempo limite entre o network connect
e o network disconnect
.
As referências que encontrei na minha pesquisa ( aqui e aqui ) indica que isso pode ser um problema de antivírus, mas não consegui encontrar nenhuma documentação sobre como confirmar se é um problema de antivírus ou qual componente de antivírus pode estar com o problema de desabilitar o antivírus e tentar novamente. Eu estou trabalhando para ficar com as pessoas que têm acesso a essa parte do sistema e tentando novamente, eu vou atualizar com resultados.
Então, o que estou realmente perguntando?
- Alguém viu algo semelhante ou semelhante antes? Que passos você foi capaz de diagnosticar a causa raiz e qual foi o problema no seu caso?
- Existem outros registros do Docker ou do Windows que eu deveria analisar para melhor diagnosticar a causa do problema?
- Algum outro "tiros no escuro" devemos tentar? Estamos ficando sem ideias depois de passarmos pela nossa depuração de segurança.
Atualização (2018-4-20):
Conversamos com a equipe de segurança e passamos pela ativação e desativação de vários componentes antivírus. Quando desativamos o McAfee Host IPS (HIPS), conseguimos iniciar qualquer um de nossos contêineres, conforme o esperado. Quando ligamos novamente, os recipientes quebram de novo! Encontramos um alerta no log do HIPS para uma leitura de registro negada que corresponde ao tempo da nossa sessão de depuração e rastreamos esse acesso de registro de volta ao processo docker.exe usando Monitor de processos da Microsoft Sysinternals . Parece que temos o nosso culpado!
Vou relatar depois que adicionarmos uma entrada à lista de permissões para a regra e confirmarmos a correção.