Como você executa um contêiner do Docker do Linux no Windows Server 2016?

2

Eu recebo:

PS C:\tmp> docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
no matching manifest for windows/amd64 in the manifest list entries

Agora, antes de dizer "Duplicar!", "verifique se ele está no modo experimental", como todas as outras respostas a essa pergunta, tenho .

Eu segui as instruções em imagens LCOW baseadas no LinuxKit , e até li e segui as etapas para criar manualmente uma imagem hyper-v de Executar contêineres do Linux no Windows .

Eu fiz o download da versão noturna do Docker.

Estou a correr no modo experimental:

PS C:\tmp> docker version
Client:
 Version:       master-dockerproject-2018-02-01
 API version:   1.36
 Go version:    go1.9.3
 Git commit:    26a2a459
 Built: Thu Feb  1 23:50:28 2018
 OS/Arch:       windows/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:      master-dockerproject-2018-02-01
  API version:  1.36 (minimum version 1.24)
  Go version:   go1.9.3
  Git commit:   53a58da
  Built:        Thu Feb  1 23:57:33 2018
  OS/Arch:      windows/amd64
  Experimental: true

Eu tentei com o argumento --platform :

PS C:\tmp> docker run --platform linux ubuntu
Unable to find image 'ubuntu:latest' locally
C:\Program Files\Docker\docker.exe: Error response from daemon: invalid platform: invalid platform os "linux".
See 'C:\Program Files\Docker\docker.exe run --help'.

Parece que tenho algumas diferenças para o docker info da minha máquina desktop do Windows 10, onde tudo está funcionando:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: master-dockerproject-2018-02-01
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslog
Swarm: inactive
Default Isolation: process

# Windows 10 value:
# Kernel Version: 4.9.60-linuxkit-aufs
Kernel Version: 10.0 14393 (14393.2007.amd64fre.rs1_release.171231-1800)

# Windows 10 values:
# Operating System: Docker for Windows
# OSType: linux
Operating System: Windows Server 2016 Standard
OSType: windows

Architecture: x86_64
CPUs: 2
Total Memory: 3.997GiB
Name: Tests
ID: ...
Docker Root Dir: C:\lcow
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: -1
 Goroutines: 16
 System Time: 2018-02-02T14:46:53.5608784+08:00
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Portanto, a versão no servidor Windows não está configurada para contêineres do Linux.

Como eu altero essa configuração para a correta?

No Docker para Windows, você pode convenientemente clicar com o botão direito do mouse no ícone na barra de tarefas e selecionar Alternar para containers do Linux .

Como você pode fazer o que quer que isso faça no Windows Server?

    
por Doug 02.02.2018 / 07:56

2 respostas

2

Parece que você não está executando no Windows Server, versão 1709. Sua versão do kernel do Windows é

Kernel Version: 10.0 14393 (14393.2007.amd64fre.rs1_release.171231-1800)

enquanto a versão do kernel de 1709 é

Kernel Version: 10.0 16299 (16299.15.amd64fre.rs3_release.170928-1534)

E o 1709 é oferecido apenas como a instalação do Núcleo do Servidor. Não possui um ambiente de área de trabalho. Então você não poderá instalar o Docker para Windows nele.

O recurso lcow está disponível somente em 1709, de acordo com o link . Então você terá que tentar esse recurso em 1709.

Quando funciona em 1709, as informações da janela de encaixe mostram o seguinte:

C:\Users\temp>docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 3
Server Version: master-dockerproject-2018-02-10
Storage Driver: windowsfilter (windows) lcow (linux)
 Windows:
 LCOW:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslog
Swarm: inactive
Default Isolation: process
Kernel Version: 10.0 16299 (16299.15.amd64fre.rs3_release.170928-1534)
Operating System: Windows Server Datacenter
OSType: windows
Architecture: x86_64
CPUs: 4
Total Memory: 16GiB
Name: winsvr1709
ID: W4MK:WLAQ:3NCM:4TUT:CNKP:NPWC:B6TJ:VSC5:LKGU:LT4F:ZEAH:22X3
Docker Root Dir: C:\ProgramData\docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
    
por 11.02.2018 / 14:20
0

Você pode tentar mudar o ambiente a partir da linha de comando:

& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon
    
por 05.02.2018 / 16:04

Tags