0

I am using windows server 2016. I have installed docker using MS doc: https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server

When I pull the node image from the dockerHub I am facing the below error.

    PS C:\Users\Administrator> docker pull node
    Using default tag: latest
    latest: Pulling from library/node

   no matching manifest for windows/amd64 10.0.14393 in the manifest list entries

Can someone help how I can use these docker images (alpine, Nginx, ubuntu) in windows server 2016?

My docker version and info:

PS C:\Users\Administrator> docker version
Client:
 Version:      1.12.0-dev
 API version:  1.24
 Go version:   go1.5.3
 Git commit:   8e92415
 Built:        Thu May 26 17:08:34 2016
 OS/Arch:      windows/amd64

Server:
 Version:      20.10.9
 API version:  1.41
 Go version:   go1.16.12m2
 Git commit:   9b96ce992b
 Built:        12/21/2021 21:33:06
 OS/Arch:      windows/amd64


PS C:\Users\Administrator> docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 20.10.9
Storage Driver: windowsfilter
 Windows:
Execution Driver: <not supported>
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics internal l2bridge l2tunnel nat null overlay private transparent
Kernel Version: 10.0 14393 (14393.4046.amd64fre.rs1_release.201028-1803)
Operating System: Windows Server 2016 Datacenter Version 1607 (OS Build 14393.4046)
OSType: windows
Architecture: x86_64
CPUs: 2
Total Memory: 8 GiB
Name: EC2XXXXXXXXXXX
ID: XXXX:XXXX:XXX
Docker Root Dir: C:\ProgramData\docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Insecure Registries:
 127.0.0.0/8
PS C:\Users\Administrator
Ojer_Dev
  • 108
  • 1
  • 12

2 Answers2

3

The Docker container uses the OS kernel to run. Your problem is that the node container requires a Linux kernel and you are using a Windows NT kernel.

On Windows versions < 1709, you cannot use: WSL, Hyper-V, LinuxKit, Docker Desktop to solve the problem.

Working method, but with a big loss of performance:

  1. Install Qemu, VMware or VirtualBox.
  2. Install in virtual machine any Linux server distribution (e.g. Debian).
  3. Then install Docker and Docker Compose: apt install -y docker docker.io docker-compose.
  4. Now you can run any Linux container:)
lcomrade
  • 186
  • 2
  • 6
  • Hi @lcomrde , Thanks for answering my question. The link you have provided is for windows server 2016? because in the Prerequisites i am seeing that, this setup supports only Windows 10 Professional, Windows 10 Enterprise, or Windows Server 2019 version 1809 or later. For me, i am using WS2016. – Ojer_Dev Mar 22 '22 at 12:41
  • Quote from the documentation: *Docker has been able to run Linux containers on Windows desktop since it was first released in 2016 (before Hyper-V isolation or Linux containers on Windows were available) using a [LinuxKit](https://github.com/linuxkit/linuxkit) based virtual machine running on Hyper-V.* – lcomrade Mar 22 '22 at 16:20
  • hi sorry for asking this. I am a little bit confused here. As you said, due to performance loss I am not using it for project deployment. But for my learning purpose, is that possible to run a Linux-based image like (Nginx, node, alpine) on my windows server 2016 using docker? if that is possible means pls share with me some good links or docs. because I am seeing a lot of deprecated links over the internet. – Ojer_Dev Mar 23 '22 at 08:13
  • Oops... I thought `Windows Server 2016 1607` and `Windows Server 2016 1709` were the same operating system. **I corrected my answer, please read it again:)** – lcomrade Mar 23 '22 at 11:50
0

This is the inverse of the tip provided on the second page. You need to right click on the docker icon and switch to running Linux containers to be able to run these images since they do not have a Windows image available.

From my experience, Windows images are a small minority of the container images available, and most users switch to running Linux images, even on Windows servers, unless they have a use case that cannot be migrated. As a bonus, the Linux images are much smaller and more portable (not tied to specific versions of Windows).

BMitch
  • 231,797
  • 42
  • 475
  • 450