Execute o docker para janelas em uma VM em execução em um host linux

1

Eu quero executar executáveis do Windows em um contêiner docker.

Não consigo executar contêineres do Windows na janela de encaixe do Linux:

$ docker run --rm microsoft/nanoserver
Unable to find image 'microsoft/nanoserver:latest' locally
latest: Pulling from microsoft/nanoserver
bce2fbc256ea: Pulling fs layer 
b1b0c61be11f: Pulling fs layer 
docker: image operating system "windows" cannot be used on this platform.

Eu tentei executar uma VM do Windows 10 e instalar o Docker para Windows lá. A instalação correu bem, mas o início do Docker gera este erro:

Unable to start: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: 'MobyLinuxVM' failed to start.

Failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running.

'MobyLinuxVM' failed to start. (Virtual machine ID E8803091-3163-4906-8547-F3422532D501)

The Virtual Machine Management Service failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running (Virtual machine ID E8803091-3163-4906-8547-F3422532D501).
at Start-MobyLinuxVM, <No file>: line 300
at <ScriptBlock>, <No file>: line 395
at Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeClient.cs:line 36
at Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup) in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 77
at Docker.Actions.<>c__DisplayClass16_0.<Start>b__0() in C:\gopath\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 61
at Docker.WPF.TaskQueue.<>c__DisplayClass19_0.<.ctor>b__1() in C:\gopath\src\github.com\docker\pinata\win\src\Docker.WPF\TaskQueue.cs:line 59

Eu verifiquei que o hyper-v está de fato ativado.

É possível ter um host Linux executando uma janela do Windows executando a janela de encaixe para executar executáveis do Windows em um contêiner ou estou tentando fazer algo impossível?

    
por Stephen 07.10.2018 / 20:39

1 resposta

0

Seu segundo problema (‘MobyLinuxVM’ falhou ao iniciar) pode ser resolvido executando este comando no powershell, isso me ajudou. Use 64 / 32bit powershell como o seu windows é. Então reinicie.

bcdedit /set hypervisorlaunchtype Auto

souce ( link )

    
por 06.11.2018 / 13:32