Swarms of Docker Machines

Docker LogoMicrosoft’s contributions to the Docker ecosystem continue to roll on. Today we announced a number of improvements to our Docker support on Azure, most notably Docker Machine support for Azure and Hyper-V and support for Docker Swarm. These are included in the latest releases from the Docker project. Work is also progressing on enabling the Docker Engine in Windows Server (but there is still a great deal of work to do, follow along if you like).

In this post I want to focus on Docker Machine, you can read more about Docker Swarm (a Docker-native clustering system) in Corey Sanders' blog. Today Docker Machine 1.0 Beta has been released. This release includes support for Hyper-V and for Azure.

The provision of Hyper-V support allows Docker Machine to create a host on your Windows machine using boot2docker, a lightweight Linux distribution made specifically to run Docker containers. This adds to the Azure support previously contributed.

To create a Docker host on your local Windows machine you simply run:

docker-machine create –d hyper-v localDev

To create a Docker host on Azure you use:

docker-machine create -d azure --azure-subscription-id="SUB_ID" --azure-subscription-cert="mycert.pem" cloudDev

Once you have created your host you work with it using the normal Docker CLI tooling. For full details on getting started with Docker Machine see our documentation "How to use Docker-Machine with Azure".

When hosting Docker on your local machine you will need the Docker CLI for managing containers on it. While the CLI has not yet been released for Windows, it is now part of Dockers' master build process. For those wanting to use Docker Machine Hyper-V you should use the latest build. Be aware that this is “in development” code. You might hit some bugs. Sachin and Ahmet two of our fantastic engineers, are working hard to ensure this is stable enough to be a part of a future release – your testing and appropriate bug reports will help deliver on this promise.

From Simple to Simpler

Docker Machine aims to makes it easier to create Docker hosts on local hypervisors and cloud providers. It creates servers, installs Docker on them and then configures the Docker client to talk to them. This release further supports our approach of focusing on simplicity and common tooling regardless of the operating system used by teams managing Docker containers.

In June last year, we provided a command in our Azure cross-platform command line tools that did just what Docker Machine does on Azure today. We focused on ensuring that users could use Docker on Azure with minimal setup. Users simply installed our CLI and ran a command to create the Docker host. Once the host was available, it was managed using standard Docker tooling.

The community liked our “get it running and get out of the way” approach and we took it to heart. In October, we were able to report that a proposed Docker feature would allow us to replicate this workflow without the need to install our CLI. We immediately implemented Azure support in order to help the community evaluate this proposal. The result was that, in December, at DockerCon EU, Docker Inc. announced that this feature would be released as Docker Machine. With this confirmation that the community had agreed on the feature set of Docker Machine we set to work enabling Hyper-V as a complement to the existing Azure support.

With today’s release of Docker Machine 1.0 Beta users can now use standard Docker tooling to create their Docker host on Azure or Hyper-v. With the addition of Docker Swarm and the upcoming Windows Docker CLI and Docker Engine on Windows Server we are very excited about the future of Docker on both Azure and Hyper-V.