microsoft/dotnet nanoserver images now support Windows Server 1709
- Dominant language
- No language data
- Stars
- 1.4k
- Forks
- 53
- PR merge metrics
- No merged PRs in 30d
Description
# microsoft/dotnet nanoserver images now support Windows Server 1709
[Windows Server Version 1709](https://blogs.technet.microsoft.com/windowsserver/2017/10/17/windows-server-version-1709-available-for-download/) was released in October. [microsoft/nanoserver](https://hub.docker.com/r/microsoft/nanoserver/) images have been updated to support [Windows Server 1709](https://docs.microsoft.com/en-us/windows-server/get-started/whats-new-in-windows-server-1709). These images can be identified with the `nanoserver-1709` [tag](https://hub.docker.com/r/microsoft/nanoserver/tags/) substring.
The following repos have been updated:
* [microsoft/aspnetcore](https://hub.docker.com/r/microsoft/aspnetcore/)
* [microsoft/aspnetcore-build](https://hub.docker.com/r/microsoft/aspnetcore-build/)
* [microsoft/dotnet](https://hub.docker.com/r/microsoft/dotnet)
## Discussion
Please share your thoughts on this change and see what others are saying at:
* [dotnet/dotnet-docker #330](https://github.com/dotnet/dotnet-docker/issues/330)
## Details
* [dotnet/dotnet-docker #321](https://github.com/dotnet/dotnet-docker/pull/321)
* [dotnet/dotnet-docker #322](https://github.com/dotnet/dotnet-docker/issues/322)
* [dotnet/dotnet-docker #329](https://github.com/dotnet/dotnet-docker/pull/329)
.NET Core Docker images now support Windows Server 1709, the latest version of Windows Server.
You can see an example of 1709-based images in the following example.

You can identify Windows Server 1709-based .NET Core images with the tag substring `nanoserver-1709` and Windows Server 2016 images with the tag substring `nanoserver-sac2016`.
Changes have been made in Windows Server 1709 that affect the [compatibility of Windows container images](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility). The practical impact is that Windows Server 2016, Windows 10 Anniversary Update, and Windows 10 Creative Update hosts cannot load Windows Server 1709 images. Windows 10 Fall Creative Update and Windows Server 1709 can load both original Windows Server 2016 and Windows Server 1709 images. Windows Server 1709 requires Hyper-V isolation (`docker run --isolation=hyperv`) in order to load Windows Server 2016 images.
Given the compatibility differences with Windows container images, .NET Core images will adopt [manifest lists](https://github.com/dotnet/dotnet-docker/issues/322) so that a single logical tag, like `2.0-runtime`, can be used on both older and newer Windows 10 and Windows Server versions. `docker pull microsoft/dotnet:2.0-runtime` will pull a Windows Server 2016 image on Windows Server 2016, Windows 10 Anniversary Update, and Windows 10 Creators Update machines. The same command will pull a Windows Server 1709 based image on Windows Server 1709 and Windows 10 Fall Creators Update machines. The same rules apply to FROM lines.
[.NET Framework](https://github.com/dotnet/announcements/issues/36) Docker images are also using manifest lists for the same reason.
You need [Docker 17.10](https://docs.docker.com/release-notes/docker-ce/#17100-ce-2017-10-17) or later to use Windows-version-specific manifest list tags. The following change from the Docker 17.10 release notes is the one that enables this functionality.
* Add support for Windows version filtering on pull [moby/moby#35090](https://github.com/moby/moby/pull/35090)
You are only recommended to use manifest tags if you want flexibility for development and deployment environments. That's what manifest tags deliver. In general, you should select the most specific tag you can. The more specific the tag, the more predictable the result of each `docker pull` and `docker build` will be.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.