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:UsersAdministrator> 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:UsersAdministrator> 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:UsersAdministrator> 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:ProgramDatadocker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Insecure Registries:
127.0.0.0/8
PS C:UsersAdministrator
2
Answers
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:
apt install -y docker docker.io docker-compose
.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).