Skip to content

LCOW enabled system can't run Windows containers #35303

@peterschen

Description

@peterschen

Description
When running an LCOW enabled dockerd on Windows Server 1709 with $env:LCOW_SUPPORTED=1
and $env:LCOW_API_PLATFORM_IF_OMITTED="linux" set, Linux containers can be started but Windows containers such as nanoserver won't start.

Steps to reproduce the issue:

  1. Setup LCOW/LinuxKit as per https://blog.docker.com/2017/09/preview-linux-containers-on-windows/ and https://gist.github.com/rn/6bfade1ba98e22691cb287cc8c23609b
  2. .\dockerd.exe -D --experimental -H 0.0.0.0:12375 --data-root "C:\lcow"
  3. docker run -H localhost:12375 -it microsoft/nanoserver powershell

Describe the results you received:
CLI output

cannot download image with operating system "windows" when requesting "linux".
See 'C:\LabBits\tools\docker.exe run --help'.

dockerd output:

time="2017-10-26T10:01:55.224730900+02:00" level=debug msg="Calling POST /v1.34/containers/create"
time="2017-10-26T10:01:55.225718400+02:00" level=debug msg="form data: {\"AttachStderr\":true,\"AttachStdin\":true,\"AttachStdout\":true,\"Cmd\":[\"powershell\"],\"Domainname\":\"\",\"Entrypoint\":null,\"Env\":[],\"HostConfig\":{\"AutoRemove\":false,\"Binds\":null,\"BlkioDeviceReadBps\":null,\"BlkioDeviceReadIOps\":null,\"BlkioDeviceWriteBps\":null,\"BlkioDeviceWriteIOps\":null,\"BlkioWeight\":0,\"BlkioWeightDevice\":[],\"CapAdd\":null,\"CapDrop\":null,\"Cgroup\":\"\",\"CgroupParent\":\"\",\"ConsoleSize\":[49,120],\"ContainerIDFile\":\"\",\"CpuCount\":0,\"CpuPercent\":0,\"CpuPeriod\":0,\"CpuQuota\":0,\"CpuRealtimePeriod\":0,\"CpuRealtimeRuntime\":0,\"CpuShares\":0,\"CpusetCpus\":\"\",\"CpusetMems\":\"\",\"DeviceCgroupRules\":null,\"Devices\":[],\"DiskQuota\":0,\"Dns\":[],\"DnsOptions\":[],\"DnsSearch\":[],\"ExtraHosts\":null,\"GroupAdd\":null,\"IOMaximumBandwidth\":0,\"IOMaximumIOps\":0,\"IpcMode\":\"\",\"Isolation\":\"\",\"KernelMemory\":0,\"Links\":null,\"LogConfig\":{\"Config\":{},\"Type\":\"\"},\"Memory\":0,\"MemoryReservation\":0,\"MemorySwap\":0,\"MemorySwappiness\":-1,\"NanoCpus\":0,\"NetworkMode\":\"default\",\"OomKillDisable\":false,\"OomScoreAdj\":0,\"PidMode\":\"\",\"PidsLimit\":0,\"PortBindings\":{},\"Privileged\":false,\"PublishAllPorts\":false,\"ReadonlyRootfs\":false,\"RestartPolicy\":{\"MaximumRetryCount\":0,\"Name\":\"no\"},\"SecurityOpt\":null,\"ShmSize\":0,\"UTSMode\":\"\",\"Ulimits\":null,\"UsernsMode\":\"\",\"VolumeDriver\":\"\",\"VolumesFrom\":null},\"Hostname\":\"\",\"Image\":\"microsoft/nanoserver\",\"Labels\":{},\"NetworkingConfig\":{\"EndpointsConfig\":{}},\"OnBuild\":null,\"OpenStdin\":true,\"StdinOnce\":true,\"Tty\":true,\"User\":\"\",\"Volumes\":{},\"WorkingDir\":\"\"}"
time="2017-10-26T10:01:55.227728900+02:00" level=debug msg="Calling GET /v1.34/info"
time="2017-10-26T10:01:55.230745700+02:00" level=debug msg="Calling POST /v1.34/images/create?fromImage=microsoft%2Fnanoserver&tag=latest"
time="2017-10-26T10:01:55.230745700+02:00" level=debug msg="Trying to pull microsoft/nanoserver from https://registry-1.docker.io v2"
time="2017-10-26T10:01:56.567725900+02:00" level=debug msg="Pulling ref from V2 registry: microsoft/nanoserver:latest"
time="2017-10-26T10:01:57.110764900+02:00" level=info msg="Attempting next endpoint for pull after error: cannot download image with operating system \"windows\" when requesting \"linux\""

Describe the results you expected:
Ability to run both Linux and Windows containers alongside of each other without making specific changes.

Output of docker version:

Client:
 Version:      master-dockerproject-2017-10-25
 API version:  1.34
 Go version:   go1.8.4
 Git commit:   9b7656c
 Built:        Thu Oct 26 00:05:37 2017
 OS/Arch:      windows/amd64

Server:
 Version:      master-dockerproject-2017-10-25
 API version:  1.34 (minimum version 1.24)
 Go version:   go1.8.4
 Git commit:   074b1fc
 Built:        Thu Oct 26 00:09:38 2017
 OS/Arch:      windows/amd64
 Experimental: true

Output of docker info:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: master-dockerproject-2017-10-25
Storage Driver: windowsfilter (windows) lcow (linux)
 LCOW:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd 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 Standard
OSType: windows
Architecture: x86_64
CPUs: 2
Total Memory: 9.999GiB
Name: APP1
ID: WIFB:YLX2:BFTR:4UDU:DENY:YKWJ:ZL7D:MDAS:Q3MR:URDS:GMZU:GUKO
Docker Root Dir: C:\lcow
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: -1
 Goroutines: 30
 System Time: 2017-10-26T09:55:41.3030541+02:00
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):
The docker host running Windows Server 1709 is nested within a Windows 10 1709. I'm not sure if this is relevant to this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/lcowIssues and PR's related to the experimental LCOW featureplatform/windows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions