Hacker News new | ask | show | jobs
by hosh 3995 days ago
You're coming at this from the wrong direction, namely virtualization.

What differentiates Docker is not virtualization, so much as package management. Docker is a package management tool that happens to allow you to execute the content of the package with some sort of isolation.

Further, when you look at it from that angle, you start seeing the flaws with it, as well as it's potential. It's no accident that Rocket and the Open Container Project are arising to standardize the container format. Other, less-well-known efforts include being able to distribute the container format themselves in a p2p distribution system, such as IPFS.

2 comments

Somehow this wasn't well explained, leading to a really persistent misunderstanding that comes up any time Docker is mentioned; you can see in this very thread someone claiming to be an expert with Linux and saying that Docker is no good because it doesn't sufficiently abstract away from the kernel, as if that were its purpose. There is always someone on hand to claim that Docker is nothing more than cgroups, again, as if the packaging part of this didn't even exist.
Fair enough!

I ran through the same thing too. I used to work for Opscode. I joined them because I like the idea of "infrastructure-as-code." I remember when Docker came around, I was scratching my head. There was a part of me that thought it has something, and another part that was thinking, why would anyone want to use this? Wouldn't this set us back to the time when infrastructure is not code? I couldn't put my finger on it. And what's really funny is that the "container" metaphor explains this well -- and I had spent time reading up on the history of physical, intermodal containers and how they changed our global economy to boot. The primary point of intermodal containers isn't that it isolates goods from one merchant from another; it is that there is a standard size for containers that can be stacked in predictable ways, and moved from ship to train to truck quickly and efficiently. You are no longer loading and unloading pallets and individual goods; you are moving containers around. Package management. A lot of logistics companies at the time didn't get this either.

Most of the literature out there explains Docker as virtualization, or some confused mish-mash of "lightweight virtualization", or "being able to the move containers from one machine to the other." They pretty much circle around the central point of package management without nailing that jelly to the wall.

For what it's worth, we use this metaphor a lot, along with the same wording in pretty much every pitch we do, both public and private.

What I find interesting about Docker is that different people get excited about different aspects of it.

One of the major reasons I love working at the company - I get to watch them have the same feeling I did over 2 years ago: the feeling that Docker can help with something they find painful in their daily work.

Thanks for sharing. I remember the pictures of intermodal containers for explaining this.

Sadly, I also see writeups that focus too much on the virtualization aspect. The journalists are searching for something to compare it to, so Docker gets compared to other virtualization and resource isolation tools.

Growing pains, I suppose?

The media often looks for conflict; the easiest target is Docker vs. VMWare. But as you correctly point out, we don't really see it that way.
I was wading through the confusion in this thread looking for this answer. The big benefit for me is that it is not virtualized. I can repurpose physical machines in my cluster quickly, by spinning up a different container. I don't want to run three VMs on one box, I want to run the same kind of node on thirty boxes. With Docker + Kubernetes (or Mesos), I can then switch these to another node type incredibly quickly. I can run the same container on AWS, VMWare, GCE, or Azure.

I guess most people don't need to do this...

I haven't needed that yet (not at the scale I am using), but that is exactly the use-case I am looking forward to.

I have a lot of interest in seeing our current devops tooling converging with AI/MI. I don't see that happening without something like Docker.