Getting error Linux Containers on Windows Server 2016 ,The data is invalid

Is it possible to create Linux Containers on Windos Server 2016

Good morning,
I am using Linux-containers on my Docker running on Win10 - so it should be working on Win2016, too :slight_smile:

I have tried this in Windows Server 2016 (version 1607 and OS build 14393.447) with build number

And used the following commands to install docker

  • [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
  • Install-Module DockerProvider
  • Install-Package Docker -ProviderName DockerProvider -RequiredVersion preview
  • Restart-Computer -Force
  • [Environment]::SetEnvironmentVariable(“LCOW_SUPPORTED”, “1”, “Machine”)
  • Restart-Service docker

The docker get installed and service started too.
But when I used the command

docker load --input test.tar ,test is a linux container.

I am getting an error saying that .

**docker : failed to start service utility VM (applydiff **
**a735d77de99adb5d934f1fca841e30909373b751ad1bee621865eebba2bcb7b7): container **
**a735d77de99adb5d934f1fca841e30909373b751ad1bee621865eebba2bcb7b7_svm encountered an error during CreateContainer: **
failure in a Windows system call: The data is invalid. (0xd) extra info: {“SystemType”:“container”,“Name”:"a735d77de9
9adb5d934f1fca841e30909373b751ad1bee621865eebba2bcb7b7_svm",“Layers”:null,“HvPartition”:true,“HvRuntime”:{"ImagePath"
:“C:\Program Files\Linux Containers”,“LinuxInitrdFile”:“initrd.img”,“LinuxKernelFile”:“bootx64.efi”},"ContainerType
":“linux”,“TerminateOnLastHandleClosed”:true}
At line:2 char:1
+ docker load --input C:\Test.tar …

Please help me to resolve this issue.

I read from some posts that LCOW is not supported in Windows 2016.
Please confirm this too.If so ,is there any other method to implement linux container on Windows Server 2016

Tested myself with the following steps using a simple redis-container/image:

  • stopped a container on a linux-based Docker-server
  • exported this container with docker export containername -o redistest.tar
  • copied redistest.tar to WIn10-Notebook using WinSCP
  • checked with docker image ls that image with tag redistest:latest is not available yet :slight_smile:
  • imported with docker import redistest.tar redistest:latest
  • checked with docker image ls that image with tag redistest:latest is available now.
  • started the image with docker run -d -p 6380:6379 10redisttest redis-server and verified with docker ps -a that the container is running. Also checked the container’s functionality (in my example I’ve checked with a redis-client)

So at least with this image the docker export+ docker import was working fine.

Instead of copying images from one machine to another with docker export + docker import I prefer publishing my images to a private repository using docker push and pulling them on the other machine(s) with docker pull