dotnet / dotnet/announcements

microsoft/dotnet nanoserver images now support Windows Server 1709

Open
#37 0 comments 0 reactions 0 assignees View on GitHub
.NET Core 1.1 .NET Core 2.0 Docker Windows
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.

![.NET Core nanoserver 1709 images](https://user-images.githubusercontent.com/2608468/32360772-61680cec-c016-11e7-851d-0d962c35fe41.png)

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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.