This post has been republished via RSS; it originally appeared at: Containers articles.
Today we are very pleased to announce a new Windows Server base OS container image preview built from Windows Server 2022 with Desktop Experience. To try it out, on a Windows Server 2022 Insider Build 20344 as the container host, run this command to start:
docker pull mcr.microsoft.com/windows/server/insider:10.0.20344.1
The direct link of the image repo on Docker Hub is here https://hub.docker.com/_/microsoft-windows-server-insider/.
Why did we build this new image?
There are 3 Windows Base OS container images today that nicely cover the broad spectrum of customer needs: Nano Server – ultralight, modern Windows offering for new app development; Server Core - medium size, best fit for Lift and Shift Windows Server apps; Windows - largest size, almost full Windows API support for special workloads. Nano Server and Server Core container image adoption has been steadily growing and widely used for a while. In the last year or so, we are also seeing uptake of the Windows image adoption. Meanwhile, in the Windows Container community on GitHub and through our Customer Support, we have received feedback regarding constraints when using that Windows base OS container image. For example,
- Windows server 2004 has IIS application pool connection limit of 10
- Windows Server Container - mcr.microsoft.com/windows should have been a Server OS Container
Some of the constraints are by design because that Windows container image is built from a full Windows Client edition and enabled to run on Windows Server. As we are committed to invest in the Windows containers business, we believe it is a right thing at this right time to build a new image based on a “full” Windows Server edition to enable more capabilities. “Full” in the sense that we choose to use the Windows Server 2022 with Desktop Experience edition. Some of you may refer this as “Server Core” + “Desktop UI” informally. That’s how this new container image was born and built. It will be added to all the relevant repos on Microsoft Container Registry (MCR) and Docker Hub pages. I should note, though this image is built from an edition with Desktop Experience, Windows containers today by design do not have GUI. That’s not changed with this new image.
What’s the name again?
Windows containers by themselves are not stand-alone products. They are considered features of Windows Server. Whatever name we choose needs to show that connection but also avoid potential confusion or duplication. That leaves us limited room for creativity . As you can see, with the path on MCR, “mcr.microsoft.com/windows/server”, this image is referred as “Windows Server base OS image”, or just short like this, “Server base image”, or “Server image”.
What about this new image?
This new image will be available with Windows Server 2022 release only. For those of you who are using the Windows images from previous releases that are still in support such as Windows Server SAC v1809, SAC v1909, SAC v2004 and SAC v20H2, those images are not changed and have their respective support cycles. This new image is not available with those previous releases. We encourage you to adopt Windows Server 2022 and move to use this new Server image.
Here is a quick comparison between all the 4 images:
Container Image |
Main Use Case |
Compressed Size
|
Supported Versions today * |
||
Windows Server 2022 |
Windows Server 2016, 2019 |
Windows Server SAC v1809**, v1909, v2004, v20H2 |
|||
Nano Server |
Mainly for modern apps such as .NET Core apps; Limited App Compatibility |
112MB |
X |
|
X |
Server Core |
Mainly for .NET Framework apps; Better App Compatibility |
1.2GB |
X |
X |
X |
Windows |
Mainly for .NET Framework apps; Best App Compatibility with by-design constraints |
3.4GB |
|
|
X |
Server |
Mainly for .NET Framework apps; Best App Compatibility |
3.1GB |
X |
|
|
Note:
* “Supported Version today” lists the Windows Server releases that the container image was or will be released and is or will be supported. For example, with the first row, it means, Nano Server image was released with Windows Server SAC v1809, v1909, v2004 and v20H2 releases and will be in Windows Server 2022 release. That list can change as some releases reach their end of support.
**In the release wave of Windows Server 2019 and SAC v1809, Nano Server container and Windows container images were only shipped as an SAC with 18 months support cycle. Based on customer feedback, last year we have extended Nano Server container in the SAC v1809 release to be supported for 5 years. This Windows container image currently will reach its end-of-life support (EOL) in May hence we will be sure to share the update on the extension in May before the EOL. On the other hand, Server Core container image in that release wave was shipped both as an LTSC and an SAC. In an oversimplified way, you can think all the 3 images released during Windows Server 2019 and SAC v1809 wave are now being made aligned to be supported for 5 years to Jan 2024. We understand this is a confusing topic. We’ll come back with details in future blogs.
What are the key benefits and capabilities of the new image?
Compared to the current Windows image:
- Size Smaller: slightly smaller, from 3.4GB down to 3.1GB.
- Performance and Reliability Improved: Over the years we have improved performance and reliability of the Server Core container images thanks to the large adoption internally and externally. This image inherits all the improvements from Server Core.
- LTSC Support from the get-go: we are planning to support this image as an LTSC with 5 years mainstream support.
- Server functionality: we are still validating so the list here is not complete but we expect this image will enable more Server scenarios/features.
- IIS Connection: as mentioned earlier, there was a 10 connection limit. This new image should no longer have this limit. We have customers validating with their scenarios.
- Web APIs e.g. Web Management Services (WMSVC): in that same GitHub issue related to IIS, it was reported this feature is not supported. We are yet to validate but we believe this should be supported.
- Fuller API support
- GPU Support: We announced GPU support back in April 2019 in this blog Bringing GPU acceleration to Windows containers, with this accomplishing GitHub page on setting up the demo: Virtualization-Documentation/windows-container-samples/directx at live . We are very glad to share GPU support is validated on this new image. Below is a screenshot:
OK, that’s interesting. How do I get started?
Step 1: Install a Windows Server 2022 Insider
To get started, you’ll need a Windows Server 2022 installation based on the Insiders preview build 20344. You can download the bits from the Insiders page here: Download Windows Server Insider Preview. Once you download the ISO (or VHD), create a new VM based on this image.
Step 2: Install Docker
Once you have a working Windows Server 2022 Preview deployment, follow this to install Docker:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -Force
Once the machine is restarted, run ‘docker info’ to ensure Docker was correctly installed.
Step 3: Pull the new image
docker pull mcr.microsoft.com/windows/server/insider:10.0.20344.1
Step 4: Run the new image
docker run -it mcr.microsoft.com/windows/server/insider:10.0.20344.1 cmd
Here is a screenshot for your reference:
Note:
- On a Windows Server host, containers are by default run in the process-isolation mode. You can find more at this doc page Windows Server Container Isolation Modes.
- If you would like to try out on a Windows 10 machine, please follow the instructions here Use Containers with Windows Insider Program. Be sure to use the latest Insider release. For example, I used a Windows 10 21364 Insider build. On a Windows 10 host, containers are by default run in the Hyper-V isolation mode.
References:
- Use Windows containers with the Windows Insider Program
- Windows Server Insiders Community on Tech Community
- Windows Container community on GitHub
- Windows Server Base OS Image Insider Build on Docker Hub
Closing
It’s been such a great journey since we started working on making this new image early this year. Your feedback really propelled us on the direction and innovations. We are so excited to share this with the community. We may get it right or we may get it wrong. Fail fast if needed. But we are in !
As always, we love to see you try it out, and give us feedback. You can share your feedback at our GitHub community, or contact us directly.
Weijuan
Twitter: @WeijuanLand
Email: win-containers@microsoft.com