Hacker News new | ask | show | jobs
by kulkarnic 4566 days ago
That is unnecessarily harsh. Docker legitimately represents a new idea, and some claim, a better idea. Yes, it won't run on RHEL5; but Java probably did not run on DEC mainframes either (back when its selling point was Write once run anywhere).

The question seems to be this: does this container model represent a step forward? I think it does. (And is it hyped a bit too much? Probably :-)

2 comments

> That is unnecessarily harsh.

So do you agree that it runs "virtually anywhere" is bullshit or not. I say it is. Is Windows antiquated too? What about Mac OS X?

It is harsh vis-a-vis the claim it makes. If it makes revolutionary claims, it better hold up to harsh criticism.

> Docker legitimately represents a new idea, and some claim,

I agree with that. So "Investigating container models for application deployment" title?

I don't know yet what will happen for Windows, but an upcoming version of Docker will run on OS X. (I say "upcoming" because I know some core maintainers have OS X support in their local branches, so it's just a matter of time before it hits master.)

It doesn't has the same isolation guarantees (yet) but it lets you use the same workflow.

Windows is different, but I can't imagine a scenario where you have to run your app on Windows. I.e. if it's your local machine, you can spin up a VM; if it's in your datacenter, you can use Linux. If your local policies are "we only run Windows on our servers, screw Linux!" chances are that you wouldn't run Docker anyway, even if it ran natively on Windows :-)

Linux/x86-64 Docker images (which is all of them) aren't going to run on OS X unless inside a VM.
I'd say RHEL 5 is fairly outdated and that Windows is irrelevant for a non negligible portion of development shops as a development platform and as a deployment platform.

I don't agree with that it would run "virtually anywhere" but it should at least run on every platform that has binary compatibility with the platform that a container was built for? Getting docker to work on Windows might take a while but Mac could work.

I actually do think Docker or at least the container model will change a lot, i'm considering staying with Linux as my development platform instead of Mac and that's a thought i'd have laughed at two years ago and the sole reason is Docker.

"new idea" is a huge stretch. More accurate: "new idea to the mass hacker nerd HN market."

Solaris has had—for years—container based virtualization with local virtual network and de-duplicating file system snapshots you can tar up and send across machines.

It's new in that they made a nice abstraction on top of the Linux clone of Solaris containers then marketed the crap out of it so everybody became aware of non-VM compartmentalization and fine grained resource allocation.

In short: still awesome, but not "they invented it" new.

That's what I thought too. It's just FreeBSD jails brought to Linux, finally.

But I was wrong. Start playing with it for a while, and you will realize that Docker is not just about jails on Linux. Docker is about making portable, self-contained apps easy. It's about making sharing those containers easy. It's about making using those containers easy.

The core technology consists of a jail, yes. But once you've worked with the Docker registry and the Dockerfile (and its wonderful caching mechanism), and experienced just how easy it is to get something up an running, you will see that Docker > jails. Docker is much more than that.

Solaris containers and FreeBSD jails are like the LXC technology. Docker, the suite of tools and utilities built on top of LXC, is what the new idea is.

Specifically, docker lets you build, define, and script new instances, and then to install and launch those instances with a single command, snapshot them, re-publish them, and so on. That's the real secret sauce behind docker.

Even for those of us who knew all about the capabilities in Linux and who used lxc already, it still packages things up nicely and makes lxc easy to use, in particular, easy for a team to use because not everybody needs to become an expert on the system config and lxc config. The expert writes a dockerfile, and everyone else can use it and manage their servers as a collection of capabilities, each one clearly defined in a dockerfile.
There is another sense in which the idea isn't new - the notion of an image in smalltalk environments provides a similar level of encapsulation as docker containers, except perhaps that running smalltalk images don't get assigned their own ip address. A metacello script is analogous to dockerfile.