Even now, it sounds unlikely. Docker, the company that took Linux containers mainstream partnering with Microsoft to bring Docker containers to Azure? Really? Really.
In June 2016, Docker announced it would bring Docker to Amazon Web Services (AWS) and Azure. The goal was to deploy a standard Docker platform to ensure teams can seamlessly move apps from developer laptops to Docker staging and production environments without risk of incompatibilities or lock-in. Other goals:
- Integrate deeply with underlying infrastructure to make sure Docker takes advantage of the host environment’s native capabilities and exposes a familiar interface to administrators.
- Deploy the Docker platform to all the places where you want to run containerized apps, simply and efficiently and at no extra cost.
- Make sure the latest and greatest Docker versions are available for the hardware, operating systems and infrastructure you love, and provide solid upgrade paths from one Docker version to the next.
- Use an SSH key already associated with your IaaS account for access control.
- Provision infrastructure load balancers and update them dynamically as apps are created and updated.
- Configure security groups and virtual networks to create secure Docker setups that are easy for operations to understand and manage.
That was the plan. Now, with the release of the public Docker on Azure beta we have the first real taste of the reality.
According to the Dec. 9, 2016, Docker for Azure release notes, the Docker Engine at the heart of this release is 1.13.0 RC2. This is Docker’s latest beta image.
That’s exactly what Docker had planned. Docker for Azure releases are meant to be in lockstep with Docker RC and GA releases. In theory, updating to a new Docker version on Azure will be seamless: Docker will gradually start new manager nodes and switch them into the manager quorum. Worker nodes are then drained of containers before switching to the new version to complete the update.
Still, while progress has been made, Docker and Azure still aren’t quite as Windows-friendly as some Microsoft shops would like. Docker project manager Michael Friis blogged, “Docker for… Azure currently only support(s) Linux-based swarms of managers and workers. Windows Server worker support will come as Docker on Windows Server matures.”
So, if you’re holding out for native Windows Docker containers, you still have a while to wait. Docker Linux containers on Azure will arrive long before the final port of Docker to Hyper-V.
Of course, since Linux instances now account for over a third of guest operating system instances on Azure, that may not matter that much. Linux, even more so than Docker, is well established on the Azure cloud.
Still, that hasn’t stopped Docker and Microsoft from porting the container program to Windows Server 2016. Eventually, according to Friis, the goal is to give developers and system administrators a single set of tools, application programming interfaces (APIs) and image formats for managing both Linux and Windows apps on both Linux and the entire Windows family.
Friis said, “As Linux and Windows apps and servers are ‘Dockerized,’ developers and IT-pros can bridge the operating system divide with shared Docker terminology and interfaces for managing and evolving complex microservices deployments both on-premise and in the cloud.”
Linux and Windows working together seamlessly. That would have sounded like science fiction — and Bill Gates’ worst nightmare! — a few years ago but now it’s becoming business reality.