//Build 2016 container announcements: Hyper-V Containers and Windows 10 and PowerShell for Docker

//Build will always be a special place for Windows containers. This was the stage where last year we first showed the world a Windows Server container. So it’s fitting that back home at //Build this year we made two new announcements as part of our Friday session “Setting the Stage: The Application Platform in Windows Server 2016”.

First, as we all know, Windows is an operating system that users love to customize! From backgrounds and icon locations to font sizes and window layouts. everyone has their own preferences. This is even more true for developers: source code locations, debugger configuration, color schemes, environment variables and default tool configurations are important for optimal efficiency. Whether you are a front-end engineer building a highly scalable presentation layer on top of a multi-layer middle tier, or you are a platform developer building the next amazing database engine, being able to do all of your development in your environment is crucial to your productivity.

For developers using containers this has typically required running a server virtual machine on their development machine and then running containers inside that virtual machine. This leads to complex and sometimes problematic cross-machine orchestration and cumbersome scenarios for code sharing and debugging; fracturing that personal and optimized developer experience.

Therefore, we are incredibly excited to be ending this pain for Windows developers by bringing Hyper-V Containers natively into Windows 10. This will further empower developers to build amazing cloud applications benefiting from native container capabilities right in Windows.

Since Hyper-V Containers utilize their own instance of the Windows kernel, your container is truly a server container all the way down the kernel. Plus, with the flexibility of Windows container runtimes, containers built on Windows 10 can be run on Windows Server 2016 as either Windows Server Containers or Hyper-V Containers.

Windows Insiders will start to see a new “Containers” feature in the Windows Features dialog in upcoming flights. And, in the next technical preview of Windows Server 2016, the Nano Server container OS image will be made available for download, along with an updated Docker engine for Windows. Stay tuned to https://aka.ms/containers for all of the details and a new quick start guide that will get you up and running with Hyper-V Containers on Windows 10 in the near future!

Secondly, since last year at //Build, we’ve been asking for your thoughts and feedback on Windows containers and we can’t thank you enough for the forum posts, tweets, GitHub comments, in person conversations etc… (please keep them coming!) Among all of these comments, one request has come up more than any other – why can’t I see Docker containers from PowerShell?

As we’ve discussed the pros, cons and various options with you, we’ve come to the conclusion that our current container PowerShell module needs an update… So last week, we announced that we are deprecating the container PowerShell module that has been shipping in the preview builds of Windows Server 2016 and replacing it with a new PowerShell module for Docker that will be delivered though the PowerShell Gallery. We have already started development on this new module and will be open sourcing it in the near future as part of what we hope will be a community collaboration on building a great PowerShell experience for containers though the Docker engine. This new module builds directly on top of the Docker Engine’s REST interface enabling user choice between the Docker CLI, PowerShell or both.

Building a great PowerShell module is no easy task. Between getting all of the code right and striking the right balance of objects and parameters sets and cmdlet names – are these things all super important. So as we are embarking on this new module we are going to be looking to you – our end users and the vast PowerShell and Docker communities – to help shape this module. What parameter sets are important to you? Should we have an equivalent to “docker run” or should you pipe new-container to start-container – what would you want?

To learn more about this module and participate in the development we will be launching a new page at https://aka.ms/windowscontainers/powershell in the next few days so head on over take a look at let us know what you think!

Taylor Brown,
Lead Program Manager for Windows Server and Hyper-V Containers