Docker is a case where "the whole is greater than the sum of its parts". Yes, LXC and cgroups and aufs and overlayfs and whatever else do a lot of the heavy lifting, but Docker glued it all together in a way that was approachable by any developer, not just Linux geeks. I remember briefly looking into LXC ~6 years ago and being totally lost. Then Docker came along with a simple command line interface and growing repository of images.
If you want to be popular among developers, the "hello world" developer experience should be extremely simple. See: Stripe, Twilio, Docker, GitHub, etc.
That said, I do think it's too bad that the Docker client/daemon are the lowest-level building block most people are interacting with. It doesn't seem to follow the Unix philosophy of doing one thing well.
> but Docker glued it all together in a way that was approachable by any developer, not just Linux geeks.
> I remember briefly looking into LXC ~6 years ago and being totally lost. Then Docker came along with a simple command line interface and growing repository of images.
I'm not trying to discount your experience in any way, but, remarkably, my impression of Docker was exactly the opposite.
I personally find LXC to be very plain, simple and easy to understand, whereas docker seems intimidatingly opaque and confusing.
If you want to be popular among developers, the "hello world" developer experience should be extremely simple. See: Stripe, Twilio, Docker, GitHub, etc.
That said, I do think it's too bad that the Docker client/daemon are the lowest-level building block most people are interacting with. It doesn't seem to follow the Unix philosophy of doing one thing well.