Container OS comparison
blog.codeship.com
blog.codeship.com
Yes, SmartOS is indeed very interesting and has been around for many years already. They've done some incredible work to get Docker containers to work on their platform. The purpose of the comparison here is to show some of the Linux OSes that are focused on containers (mainly Docker but also others), and it's never gonna be an exhaustive list. SmartOS could've been on the list as another alternative.
Unlike system containers like LXC, appc means you now have an explosion of the state space whereby every container has their own independent copy of a host OS, yet relies on the semantics of its container manager to function, i.e. it is not easily introspectable with vanilla tools.
So you end up needing to build a small parallel userspace to handle things like service discovery, orchestration and provisioning, networking bridges, location transparency, resource scheduling and taken to its logical conclusion you start running a user-mode kernel (Mesos) on top of a base OS kernel (Linux) to provide further abstractions of OS resources and run extended versions of OS processes called frameworks.
I don't know if it's too early to tell, but I think people might have dug themselves into a ditch where in an attempt to escape the limitations of their kernel and userland, they've only expanded it with a concurrent layer and must maintain both.
Or you install a PaaS, which does these for you. I've worked on Cloud Foundry, OpenShift is a competitor. Both are far superior to rolling your own.
For example CoreOS comes with lots of tools helping to orchestrate and manage those clusters.
edit: the joke flew over my head.
> Why?
This is kind of irony about today situation in the world of OSes.
Thanks! :)
A lot of these container OS's seem to have so much built-in tooling that it seems "wrong" to consider using extra tooling on top of them.
I say try a few of them, including the tooling that comes with them, and since the containers look the same and will behave the same on all of them you can easily change your underlying OS (and tooling) in this testing phase. Then try the different tools that can be used on top of them and I'm sure you'll find a mix that works for you :)
reference https://github.com/senthilnayagam/godockersample
edit: added a implementation link
tar cv --files-from /dev/null | docker import - scratch