Docker gets a lot of attention from desktop virtualization people, but is it really a new idea?

I don't claim to know much about Docker, but my overall feeling has been that if you're not doing something with Linux, it's not something that you care about. It seems cool, but I don't understand why there is all this buzz around creating application containers today when this type of technology has been around for a long time.

I don’t claim to know much about Docker, but my overall feeling has been that if you’re not doing something with Linux, it’s not something that you care about. It seems cool, but I don’t understand why there is all this buzz around creating application containers today when this type of technology has been around for a long time. Perhaps I’m missing something, but I figure if I have these questions then someone else probably does, too.

VMware couldn’t stop talking about Docker at VMworld, to the point where the chatter about Docker was just about as loud as the chatter about what VMware announced (it was new to a lot of people, I guess). People in the desktop virtualization space paid particular attention to the talk about Docker when it was mentioned in relation to their acquisition of CloudVolumes (since renamed AppVolumes). One writer even called the acquisition “Windows’ answer to Docker containers.”

It’s not that I fail to see the parallel (that’s a future pun, but more on that later). Placing applications in containers so that they can be instantly, seamlessly delivered somewhere is important technology. For over a decade we’ve been trying to put containerize our applications in one way or another. We’ve shared a single host OS (RDSH), we’ve virtualized the entire stack (VDI), and we’ve delivered just applications to OSes with varying degrees of isolation (App-V, ThinApp, Spoon, AppVolumes, FSLogix, etc…). While all these approaches have fundamental differences, the goal of containerization remains.

Of course, our focus has just been on Windows, so maybe this is new in the Linux world? That doesn’t seem likely, though. We’ve had Parallels (there’s the pun!) Virtuozzo Containers for many years, with the “Containers” name alone dating back to 2009. Virtuozzo Containers isn’t looked upon as a desktop virtualization solution, though. It’s a datacenter optimization product aimed at service providers that need to stand up new instances of services like IIS.

Perhaps that’s the difference. Docker and Virtuozzo Containers are aimed at service providers and other datacenter-level service providers, so that kind of technology falls outside of typical desktop virtualization needs. Still, I get the feeling that the folks over at Parallels are waving their arms saying "Hey! Yeah, we know! It's should know that already!" 

Digging into it more, you can find that Microsoft is getting involved, with support for Docker containers expected in the next release of Windows Server sometime in 2015. But how will that work? Will I be able to run Docker containers consisting of components made for Linux on Windows? Or will there be Windows support so that I can run components made for Windows within the containers?

To be clear, I’m not trying to be cranky. I really want to know what all the hubbub is about and why it’s talked about like the second coming. The concept just doesn’t seem that new or revolutionary.

It seems as though Docker itself is off the desktop virtualization radar. If you really want a Docker-like product for your enterprise today that works with Windows apps, you can use any of the techniques I mentioned above. AppVolumes might be the closest, but basically anything that you’re using to compartmentalize and isolate Windows apps falls into this category. Even FSLogix, which admittedly doesn’t advertise any isolation capabilities, can isolate to the point where it can support multiple versions of Java for different applications.

Even Spoon has gotten into the mix with an announcement last week that seems to specifically target people that are looking at the Docker container model, but wishing for Windows application support. They even have a “Differences from Docker” page in their Documentation section, which is what got me thinking about this entire article. What Spoon is doing seems interesting, but I’ll have to get into that at another time.

Anyway, I’m curious to read the comments here on Docker, how you think it relates to what we do, and if there is something major that we’re missing. Again, it’s cool and I am 100% behind the concept, but I just can’t see how it’s anything more than an evolution of what we’ve been doing for many years. You wouldn’t know that based on the attention it gets, though.

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

Gabe, to shine some initial light on your questions, let's start with what Docker is about: It's about Managing Linux-Container (LXC) , which is aorund for several years now and not a new technology at all. The Problem with LCX was / is, that's it works pretty well, but is very hard to handle from a management -perspective. In fact, LXC was a solution aimed at a single host, which made containers hard to move. Docker added this portability feature through a simple interace / api and that is what really made docker interesting. Another thing they added was a service called Dockerhub, where it was easy to check-in / check-out preconfigurered docker-containers. Think of it like a Marketplace for Container. the nice thing about Dockerhub is, that it's very simple to use, just like the portability-feature.

And that's really the background of the story (from my perspective). Talking about Microsoft, i think their idea is to run containers the same way they run VMs (conatiners are by the way often called lightweight-VMs). Why ? Because of the portability-feature. My estimation is, that a lot of the new cloud-enabled Applications (i'm talking about the backend-servcies that are needed to run apps, etc.) will be based on containers / docker, as this concept makes it very easy to scale and move Applications. And that's what it all about....

Finally, how does it relate to EUC / Desktops? I think there's no "real" relationship. Containers will power the backend-Services that have to be there for the apps / application-frontends that will be rolled out using some of the technologies / solutions you mentioned in your post.  


Sorry but was APP-V not some sort of container (bubble) for Windows ?


@Kata Tank: I guess the difference with APP-V is that Microsoft will user Docker containers to deliver applications without having to use a Windows OS. Docker being like a Hypervisor and the application being like a VM

At least that's what I've understood from this article:

Please do correct me if I'm wrong :)


Docker is not just about containers, it's about what you do with them in a frictionless, programmatic way. As others have mentioned, Docker uses Linux LXC containers as an enabling technology to encapsulate a Linux process and address space. It also has parameterization and features such as customizable virtualized networking. And there is the docker hub repository for distribution. But these technologies are only the enabler, not the real value.

The key unique usefulness and excitement of Docker is that it enables frictionless cloud deployment for application developers. Create a docker container in a VM on your laptop/Mac. Create or make changes to the program or service in the container until it's running correctly and then easily and almost instantly deploy a new instance of your service to a cloud via the docker hub repository. Repeat. When, ready and working correctly, scale it out to many instances just as easily and frictionlessly.

The  key exciting value is enabling this frictionless devops cloud deployment model, not the container itself. Hence, in my opinion, comparing Docker (LXC) containers to app virtualization technologies is missing the point.


I think Google admitting to running 2 billion containers per week has helped in validating its use. Docker support being added to pubic cloud providers is a big win for PAAS. From an operational standpoint  it will be interesting to see if software companies will support their code running in containers.


Gabe, I could talk at length on the differences between Docker and say... OpenVZ (the free brother of Virtuozzo Containers).  I've been using OpenVZ since it became available in 2005.

Anyway, Docker is quite different.  OpenVZ is more of a full virtualization but still a shared kernel with an emulated sub-set of devices... in which one typically runs a full Linux distro.  It has it's own network stack (two different interface types to pick from) and fairly reasonable resource management... and isolation (commercial hosting providers giving root access to untrusted customers).

Docker doesn't offer much in the way of resource management nor security.  In fact the security issue is one of the reasons the CoreOS folks recently announced they were working on a Docker alternative named Rocket.  Docker is only for a single application rather than a complete distro.  If you want multiple services you have to create a container for each service and then string them together with internal network connections.  Docker only gives containers private IPs and if you want your containers to talk to the outside world you have to map private IP ports to public ports on the host.  The networking is kind of a mess but various people are working on more advanced solutions for that.  Since Docker is only a single application it does require quite a bit of orchestration to build anything complex.

Some of the interesting things that Docker brings to the table is that Docker uses various features that are part of the mainline/stock Linux kernel whereas things like OpenVZ are independent, third-party patches... so Docker works most anywhere there is a relatively modern Linux kernel.  OpenVZ, only with the kernels provided by OpenVZ... which are mostly aimed at RHEL/clone.

Docker also has an interesting disk layering technology that originally used an out-of-mainline union filesystem (that is close to dead now I think).  Red Hat helped Docker with that by making it work with an in-mainline filesystem (I can't recall the name of it) and these days Docker's default filesystem is BTRFS-based... which is pretty cutting edge yet not-as-stable for the more advanced features.

Using the layering approach they basically create a container by using a read-only base image or multiple read-only images... with the last being a writeable space that is often thrown away... because most people using application containers for PaaS don't care as much about persistance... or so I'm told.  Anyway, using the layering method... creating and starting a container is a sub-second operation... and hundreds and thousands of them can be created on a single host.

Two previous commentors said that Docker uses LXC but that is only partially true.  It used LXC as default until version 0.9 (I think I'm remembering that correctly) at which point they released their own libcontainer library and made it the default... while still maintaining LXC compatibility.

Docker was very successful at defining a light weight standard what was easy to deploy and use anywhere... but now they are busy adding enterprisey services on top of that.  I'm not into PaaS application container stuff... and prefer more of a full VM type container so Docker doesn't do much for me... and OpenVZ is still king.

I didn't really do a complete job but that'll do for now.


Docker is hype for the most part. It's fine for a few dev ops use cases, but does little to make the infrastructure transparent to the developers. Solutions may form around Dockers to enable that, but in the Windows world Microsoft is sending mixed signals with research projects like DrawBridge and saying Dockers for Windows will be supported. I suspect the Docker love from Microsoft is nothing more than a marketing gimmick, to stop developers defecting to Linux, where they have sh1t for brain enterprise management tools and a bunch of geeks and VCs have created a hyper cycle around a container without an ounce of thought to what it means in reality for the enterprise. As a say, 99% of people are idiots.