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

Я получаю:

PS C:\tmp> docker pull ubuntuUsing default tag: latestlatest: Pulling from library/ubuntuno matching manifest for windows/amd64 in the manifest list entries

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

Я следовал инструкциям по Изображения LCOW на основе LinuxKit, и даже прочитал и выполнил шаги по ручному созданию образов hyper-v из Запуск контейнеров Linux в Windows.

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

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

PS C:\tmp> docker versionClient: 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:  swarmServer: 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 ubuntuUnable to find image 'ubuntu:latest' locallyC:\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: 0Images: 0Server Version: master-dockerproject-2018-02-01Storage Driver: windowsfilter Windows:Logging Driver: json-filePlugins: Volume: local Network: ics l2bridge l2tunnel nat null overlay transparent Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslogSwarm: inactiveDefault Isolation: process# Windows 10 value:# Kernel Version: 4.9.60-linuxkit-aufsKernel Version: 10.0 14393 (14393.2007.amd64fre.rs1_release.171231-1800)# Windows 10 values:# Operating System: Docker for Windows# OSType: linuxOperating System: Windows Server 2016 StandardOSType: windowsArchitecture: x86_64CPUs: 2Total Memory: 3.997GiBName: TestsID: ...Docker Root Dir: C:\lcowDebug Mode (client): falseDebug Mode (server): true File Descriptors: -1 Goroutines: 16 System Time: 2018-02-02T14:46:53.5608784+08:00 EventsListeners: 0Registry: https://index.docker.io/v1/Labels:Experimental: trueInsecure Registries: 127.0.0.0/8Live 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 предлагается только в качестве базовой установки сервера. У него нет среды рабочего стола. Таким образом, вы не сможете установить на него Docker для Windows.

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

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

C:\Users\temp>docker infoContainers: 0 Running: 0 Paused: 0 Stopped: 0Images: 3Server Version: master-dockerproject-2018-02-10Storage Driver: windowsfilter (windows) lcow (linux) Windows: LCOW:Logging Driver: json-filePlugins: Volume: local Network: ics l2bridge l2tunnel nat null overlay transparent Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslogSwarm: inactiveDefault Isolation: processKernel Version: 10.0 16299 (16299.15.amd64fre.rs3_release.170928-1534)Operating System: Windows Server DatacenterOSType: windowsArchitecture: x86_64CPUs: 4Total Memory: 16GiBName: winsvr1709ID: W4MK:WLAQ:3NCM:4TUT:CNKP:NPWC:B6TJ:VSC5:LKGU:LT4F:ZEAH:22X3Docker Root Dir: C:\ProgramData\dockerDebug Mode (client): falseDebug Mode (server): falseRegistry: https://index.docker.io/v1/Labels:Experimental: trueInsecure Registries: 127.0.0.0/8Live 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

@Oneiroi проблема, на которую вы ссылаетесь, относится к Windows 10. Запуск docker для Windows в Windows 10 не является проблемой и работает нормально; ни одно из решений в этом билете не имеет отношения к моему вопросу. (Вы заметите, что в связанном сообщении в блоге говорится: “ОБНОВЛЕНИЕ: поддержка LCOW доступна в Windows 10 Fall Creators Update и в Windows Server 1709. На Windows Server 1709 установите EE preview.” < - Это именно то, что я спрашиваю, как это сделать.

Redirecting… содержит информацию о том, как установить предварительный просмотр Docker EE, пожалуйста, обратите внимание на предостережения, однако, поскольку есть несколько функций, отмеченных как отсутствующие / не поддерживаемые, дайте мне знать, если это поможет.

@Oneiroi это не помогает. Как я уже указывал в своем вопросе, я сделал * все эти вещи *, и это не сработало. Существует не несколько функций, отмеченных как отсутствующие / не поддерживаемые; это * вообще не работает *. Вы действительно пытались? Если у вас есть, и это каким-то образом работает для вас, пожалуйста, расскажите мне точно, что вы сделали, чтобы это сработало.

Похоже, это постоянная проблема с несколькими вариантами исправления, проверьте это "docker pull" fails in windows 10 · Issue #1100 · docker/for-win · GitHub для получения более подробной информации.

@Oneiroi 1709 - это НЕ Windows Server 2016, который является версией 1609.