Я получил:
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