We are looking forward to build docker images on a Windows Server 2016 Jenkins slave (though not ideal) for our microservices using a base openjdk image.
We did get Docker EE installed on Windows Server 2016 and as expected getting the below error:
PS C:\> docker pull openjdk:8
8: Pulling from library/openjdk
no matching manifest for windows/amd64 in the manifest list entries
Unlike Windows 10, i have not been able to set the daemon to switch to linux containers.
What issues will we be running into if we went this route?
Docker Version: PS C:\\> docker version Client: Version: 18.03.1-ee-3 API version: 1.37 Go version: go1.10.2 Git commit: b9a5c95 Built: Thu Aug 30 18:42:35 2018 OS/Arch: windows/amd64 Experimental: false Server: Engine: Version: 18.03.1-ee-3 API version: 1.37 (minimum version 1.24) Go version: go1.10.2 Git commit: b9a5c95 Built: Thu Aug 30 18:56:49 2018 OS/Arch: windows/amd64 Experimental: true
Windows Build:
OS Name: Microsoft Windows Server 2016 Standard OS Version: 10.0.14393 N/A Build 14393
The error is because openjdk:8 is not a windows container. To check this ,you can try pulling "microsoft/nanoserver" and this will work fine because it's a windows container
you can check these links for running linux containers in windows 2016 server:
https://blog.docker.com/2017/09/preview-linux-containers-on-windows/
https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers
This is an experimental feature so not recommended for production
Another option is to use docker for windows:
https://store.docker.com/editions/community/docker-ce-desktop-windows and in the installation configuration window leave the use windows container unchecked
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.