What is Docker and what does it mean for virtualization?
Docker uses Linux containers to make virtualization deployments easier to manage and scale. The concept isn’t new or revolutionary, but it has implications for the future of virtualization.
There have been loads of conversations about Docker over the past year. Those conversations weren't usually among desktop virtualization people, but that all changed at VMworld 2014.
There, VMware talked about how Docker containers compartmentalize applications so they can be delivered in a service-oriented way. My first reaction was something along the lines of "Wow, that sounds amazing!" until I thought about it more. I realized that compartmentalizing apps and services into manageable components has been one of my soapboxes over the past decade. Why is VMware talking about this in 2014? And why is Docker all of a sudden the industry darling?
What Docker is
Docker lets you create manageable Linux containers. Containers aren't anything new, but managing them at scale has been a challenge, and that's where Docker comes in. It's added a marketplace called Dockerhub to share containers that consist of different applications and services, kind of like Amazon Machine Images that you can use in Amazon Web Services' Elastic Compute Cloud.
Adding management to Linux containers means that companies and service providers can scale up their deployments faster and with less effort by bolting containers onto a base OS. It shares parts of the core OS, but keeps each container isolated.
What Docker isn't
Docker is not a hypervisor. Some people have suggested that Docker means the end of virtual machines, citing the efficiencies of running a single OS with isolated containers as opposed to a dedicated, virtual OS for each application. Also keep in mind that for now, this technology is entirely Linux-oriented. Docker is not for mom-and-pop-shop deployment, but for service providers. It's not a replacement for App-V or client hypervisors, and it's not a replacement for VDI or Remote Desktop Session Host.
How does it relate to us?
People who have been in desktop virtualization for a long time might look at Docker and say "Isn't this just the same stuff we've been doing for fifteen years, trying to isolate our apps, profiles, and data so we can manage them better?" I was one of them. And they would be right, but we're talking about different techniques and different types of computing.
The Docker/Linux container mentality is about enabling a cloud-scale architecture, complete with manageability and super-high efficiency. In desktop virtualization, we're focused on our own companies, our own users, and more than likely, on Windows. We've had many products with varying degrees of compartmentalization and isolation for fifteen years with Windows. On the surface they're similar to Docker, but they are not the same. The closest thing that we have to Docker on the Windows side is Parallels Containers (formerly Parallels Virtuozzo).
VMware brought Docker into the conversation as an example of how we can move desktop virtualization into the cloud in a more effective manner. Using the principles of Docker -- and complementary tools such as Google's Kubernetes, which is an open-source manager for clusters of these containers -- the companies driving desktop virtualization (VMware, Citrix and Microsoft) can make desktops and applications easier to put in the cloud. Once they're there, they'll be easier to manage, easier to scale and easier to support.
At least that's the idea.