Will Docker ever run natively on Windows? Eventually, yes -- but despite Microsoft's steps in that direction, the road ahead remains long.
As part of the recent announcement of close collaboration between Microsoft and Docker, Microsoft contributed code back to the Docker client application to get it running on Windows. The result is a Docker CLI that can run on Windows machines. However, it's only useful for managing Docker on Linux systems -- Windows lacks the underlying components needed to run Docker natively.
Still, it means one fewer obstacle for those doing Docker development in a Windows environment. Those deploying Docker images on Azure VMs, for instance, can now run the Docker CLI side by side with their other Azure tools on their Windows workstations.
Previously, dealing with Docker on Windows involved elaborate workarounds, such as running the Docker CLI inside a Linux VM using a boot2docker distribution. Technically, that doesn't count as running Docker on Windows at all, but it was as close as you could get.
Previously, Microsoft took another step to ensure that Docker containers could run on Azure by adding support for Kubernetes, the Google-created project for Docker container orchestration, along with tools to help visualize cluster management. To further prep Windows for Docker, Microsoft has released a preview Docker image of ASP.Net 5, on which other ASP.Net-based containers can be built.
The biggest missing piece is container support, which must be added to Windows itself so that Docker can run natively. This isn't the same as having Docker running in Azure, where it's used to manage Linux workloads. It's even more radical: adding features to the Windows kernel that parallel Linux's cgroups and namespaces, both essential to Docker's workings.
That said, Microsoft has remained tight-lipped on how it will do this. It could be via a kernel-level driver or require a full-blown revision to the kernel for a future edition of Windows, but the company hasn't posited so much as a time frame for the shift.
One advantage to the latter method -- modifying the Windows kernel -- is that Microsoft would be under less pressure to release the results as open source. The company's gradual warming to open source has taken the form of truly startling overtures, such as releasing server-side .Net as an open source project. But there's every reason to believe Microsoft will continue to keep Windows, one of its prize proprietary offerings, on a tight leash for as long as it can -- even while making it a target for open source success stories like Docker.