Today at DockerCon in San Francisco, Microsoft Open Technologies Inc. (MS Open Tech) is demonstrating new code that makes running and maintaining Docker on Azure even simpler.
We have streamlined some of the steps required to create and manage Docker hosts in a cloud environment. By updating the cross-platform command line interface (CLI) tools for Azure and utilizing a feature called Virtual Machine (VM) Extensions, we have made it possible to quickly create multiple Docker hosts on Azure, yet also allow users to leverage standard Docker client tools for subsequent configuration and management.
With this update, users can create a Docker enabled VM by running the command ‘azure vm docker create’. Once deployed, users will then be able to use a standard Docker client to manage containers.
This means that we have eliminated the need to log into each Docker host in Azure separately; rather you can now run configuration commands for each host using the Docker client on your desktop or laptop.
We think you’ll like using it.
More About Docker
Docker is an open-source engine that automates the deployment of any application as a portable, self-sufficient container that will run almost anywhere – including Microsoft Azure.
Docker has been making waves for some time despite an insistence from the team that it was “not production ready (yet).” On May 7th, the first version 1.0 release candidate was published, and there is growing excitement that the project will be “production ready” very soon.
UPDATE 6/9/2014: During this morning’s keynote presentation from Docker CEO Ben Golub, the company announced the official release of Docker 1.0. Let the production deployments begin!
Common use cases for Docker include:
- Automating the packaging and deployment of applications
- Creation of lightweight, private PaaS environments
- Automated testing and continuous integration/deployment
- Deploying and scaling web apps, databases and backend services
What makes Docker unique is that instead of maintaining configuration files (as is the case with tools such as Puppet and Chef), developers can create an image of their system and share it directly with their team. Any changes to local environments produce a new image that can be re-shared. Importantly, these images should not be confused with heavyweight Virtual Machine images, which contain everything needed, including the application, any dependencies and the operating system. In contrast, Docker containers include the application and some libraries, but the OS and common dependencies remain shared assets. Consequently, Docker containers are extremely lightweight in comparison to Virtual Machine images. This is nicely illustrated the Docker documentation:
By making Docker containers significantly smaller than traditional VMs, they can be booted/restarted more quickly, more of them can run on a single host and they are considerably more portable. Furthermore, when capturing a new Docker container, the tooling only needs to capture the differences between the original and the new container. This makes it possible to rationalize Docker as a kind of version control system for disk images.
For those of you at DockerCon try to look up @jeffmendoza and @nik_g. Otherwise, the Docker web site offers an excellent introduction to Docker to further explain Docker’s value to Developers and Operations teams. You can find the source code, and get involved in our fork of the cross platform Azure CLI tools (we’ll be merging into the main project and releasing soon). We have also added a section devoted to Docker on our DevOps subsite where we will provide further news and tutorials about Docker on Microsoft Azure.
Watch out for our upcoming tutorial to help you get started.