When i read this news in October 2014 I had to do a double-take, if you are anything like me (i.e. – nearly 50 and somewhat techy) then the word Docker conjures up more than one image. The predominant one in my mind is that of Doc Marten boots affectionately known in my peer group as Dockers.
Enough reminiscing, the Docker I need to move on to is the containerization system that allows applications to be completely portable.
Here’s the description from the Docker website.
“Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.”
The Founder and CTO of Docker Solomon Hykes does a pretty good job of explaining the concepts in this short video
Those of us who routinely use Virtual Machines to overcome compatibility and deployment difficulties would suggest that this is a good way of handling such things. So how does Docker differ to VM’s
Well, with a VM there is always a guest operating system running on top of the host operating system AND the hypervisor as shown in this image from the Docker website.
Once you deploy the Docker Engine this sits above the server host operating system providing all the necessary muscle to allow the individual Docker applications to maintain resource isolation and allocation much as VM’s do but without the huge overheads.
The closest thing in the Microsoft stack at present is App-V the Application virtualization system that comes as part of MDOP, the Microsoft Desktop Optimization Pack, available only to Windows Enterprise customers.
App-V is currently in version 5.0 and provides a way of streaming apps to a desktop when in online mode and also to run those apps when isolated from the network or in standalone mode. It is a different system and has provided many years of service. App-V applications however will only run on Client operating systems or on RDS servers.
So the Windows Server vNext edition will have support for Docker containerization. This shouldn’t come as much of a surprise to anyone who routinely uses Microsoft Azure. Since June 2014 Docker has been available in Linux VM’s on that platform. All part of Microsoft embracing open technologies.
So back in October 2014, Microsoft and Docker announced that
“Under the terms of the agreement announced today, the Docker Engine open source runtime for building, running and orchestrating containers will work with the next version of Windows Server. The Docker Engine for Windows Server will be developed as a Docker open source project, with Microsoft participating as an active community member. Docker Engine images for Windows Server will be available in the Docker Hub. The Docker Hub will also be integrated directly into Azure so that it is accessible through the Azure Management Portal and Azure Gallery. Microsoft also will be contributing to Docker’s open orchestration application programming interfaces (APIs).”
What makes Docker unique is that instead of maintaining configuration files (as is the case with tools such as Puppet andChef), 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 all relatively old news, but with the push towards DevOps, this news brings the developers and sysadmins much closer together on a platform that they know and love. There are industry rumours that the next release of the Windows Server Technical Preview is scheduled soon and that it will contain this technology. I have no insight into this, but am looking forward to getting my hands on the next release, of course once I have digested the new Windows 10 Technical preview released this week.
In the meantime if you want to hear the latest news on Azure and Docker – flip forward to the 16 minute mark of this video where Rick Claus (@RicksterCDN) interviews members of the Azure product team on the Edge Show 132.
Busy and interesting times in the wonderful world of Windows. Watch this space for more.