Назад | Перейти на главную страницу

Как запустить контейнер Linux Docker на Windows Server 2016?

Я получил:

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

Теперь, прежде чем вы скажете «Дублировать!», «Убедитесь, что он находится в экспериментальном режиме», как и все другие ответы на этот вопрос, я иметь.

Я выполнил инструкции на Образы LCOW на основе LinuxKit, и даже прочитал и выполнил шаги по созданию изображений Hyper-V вручную из Запускать контейнеры Linux в Windows.

Я скачал ночную сборку Docker.

Я работаю в экспериментальном режиме:

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

Я пробовал с --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'.

Кажется, у меня есть некоторые отличия от docker info с моего настольного компьютера с Windows 10, где все работает:

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

Таким образом, версия на сервере Windows не настроена для контейнеров Linux.

Как я изменение эту конфигурацию на правильную?

В Docker для Windows вы можете легко щелкнуть правой кнопкой мыши значок на панели задач и выбрать Перейти на контейнеры Linux.

Как вы можете делать то, что делает, на Windows Server?

Похоже, вы не используете Windows Server версии 1709. Версия вашего ядра Windows -

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

в то время как версия ядра 1709

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

А 1709 предлагается только в качестве установки Server Core. У него нет среды рабочего стола. Таким образом, вы не сможете установить на него Docker для Windows.

Функция lcow доступна только на 1709 в соответствии с https://blog.docker.com/2017/09/preview-linux-containers-on-windows/. Так что вам придется попробовать эту функцию на 1709.

Когда он работает на 1709, информация о докере показывает следующее:

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

Сообщение о том, как запускать контейнеры Linux на Windows Server: https://chunliu.me/2018/02/12/running-linux-containers-on-windows-server-2016/

Вы можете попробовать переключить среду из командной строки:

& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon