Incoming Tag Changes for Containers in Windows Server 2019

Windows Server 2019 is now generally available. We are thrilled for users to get their hands on all the work we’ve put into this latest edition of Windows Server. In addition to Windows Server 2019 delivering a ton of new containers features, there is an important change coming with regards to where a user gets Microsoft-authored container images.

Summary

  1. The “latest” tag will be changed from Windows Server 2016 to Windows Server 2019.
  2. New container image versions (such as Windows Sever 2019) will be published on Microsoft Container Registry (MCR) only.
  3. Already-live container images will continue to be updated on Docker Hub. We are working on making all existing images available on the MCR as well. We expect this process to be completed in the next few weeks.

The ‘latest’ Tag

Windows Server 2016 was the first Long Term Servicing Channel (LTSC) to ship with the containers feature. The ‘latest’ tag for our container images points to the latest LTSC. As such, it has pointed to Windows Server 2016. With the release of Windows Server 2019, this tag will point to the new latest LTSC—Windows Server 2019. This tag change is not immediate–we are waiting a few weeks to make this breaking change. This is important to be aware of if you are relying on using:

docker pull Microsoft/windowsservercore:latest

because it will no longer be a Windows Server 2016 versioned container. For users wishing to stay on Windows Server 2016, you should change your commands to:

docker pull Microsoft/windowsservercore:ltsc2016

Please also note for Nano Server container, the current ‘latest’ tag is pointing to “Windows Server, version 1803”. With this release of Windows Server 2019, the ‘latest’ tag of Nano Server will be pointed to Windows Server 2019 as well. Please read on below to learn about how to declaratively pull the new Windows Server 2019 container image.

Microsoft Container Registry

Steve Lasker wrote a blog back in May about the new Microsoft syndicates container catalog, describing how Microsoft will start serving container images from mcr.microsoft.com, the Microsoft Container Registry (MCR), and syndicating the content describing the container images with Docker Hub and Red Hat.

I would encourage you to read the post if you’re interested in understanding the key benefits we see in moving to the MCR. Putting that aside, I’d like to focus on how this transition will impact the end user and address common questions. Let’s dive into the FAQ below.

How will I pull the NEW container images from Microsoft?

Here is how you can pull a container:

docker pull mcr.microsoft.com/windows/servercore:ltsc2019

This contrasts with how a user would pull a container prior to Windows Server 2019:

docker pull microsoft/windowsservercore:ltsc2016

What images will exist on the MCR?

Today, only new container images will live on the MCR, meaning the Windows Server 2019 container image version. You can continue to discover these images by browsing Docker Hub. The full pull commands for each image of the Windows Server 2019 release would be:

docker pull mcr.microsoft.com/windows/servercore:ltsc2019
docker pull mcr.microsoft.com/windows/nanoserver:1809

New container images will exist only on the MCR. Already-live images will continue to exist on Docker Hub.

We are working on making all Microsoft container images available on the MCR. This means for any existing image you get from Docker Hub today, you will be able to replace the string wholesale with the mcr.microsoft.com equivalent. Be on the lookout for future blog posts indicating when this transition will be completed. Since only Windows Server 2019 images are being pushed to the MCR for this week, the pull string identified in the repo information section of the container image on Docker Hub will remain the same.

What tags will exist on the MCR?

New container image tags will exist only on the MCR. Already-live tags will continue to exist Docker and eventually exist on the MCR at a later date.

New Tags

All newly created tags for new container images will exist only on the MCR. Example:

#This tag can ONLY be pulled from the MCR
docker pull mcr.microsoft.com/windows/servercore:ltsc2019
#This tag can ONLY be pulled from the MCR
docker pull mcr.microsoft.com/windows/servercore:1809_KB<new number>

All newly created tags for already-live container images will continue to be published on Docker Hub. Example:

#This tag can continue to be pulled from Docker Hub
docker pull mcr.microsoft.com/windows/servercore:1709_KB<new number>

Already-Live Tags

All already-published container images will continue to exist on Docker Hub. As an example, if you have a container image with tag ‘1803_KB4457128’, you can continue to pull the container from it’s original pull URL.

#you can still pull from Docker Hub, since the 1803 tag existed before the move to MCR
docker pull microsoft/windowsservercore:1803_KB4457128
#this will also work
docker pull mcr.microsoft.com/windows/servercore:1803_KB4457128

As state above, we are working to also make these older images available on the MCR at a later date.

Conclusion

This wraps up the important changes for containers arriving with Windows Server 2019. For more information, please visit our container docs at aka.ms/containers and stay tuned for later posts outlining all of the new container features in Windows Server 2019!

Cheers,

Craig Wilhite (@CraigWilhite)