4 ms·
This article highlights an interesting distinction between "containers" the idea and linux userspace tools, like LXC and lmctfy. I think there has been some con
by WestCoastJustin 13y ago
This article highlights an interesting distinction between "containers" the idea and linux userspace tools, like LXC and lmctfy. I think there has been some confusion about what "linux containers" are, because LXC is actually an acronym for LinuX Containers, but they are not mutually exclusive. Containers the idea, is the concept of isolation and resource control (on linux using chroot, namespaces, cgroups, selinux, etc [1]), where LXC is a set of userspace tools that implement the idea. Take for example, databases the idea, and userspace software like mysql or postgres that implement the idea.
idea implementation tools/libs (userspace)
----------- -----------
database mysql
postgres
linux containers LXC (LinuX Containers)
libvert
libcontainer
lmctfy
ps. personally, I think Docker is headed in the right direction by developing libcontainer. Docker will have much more control over their own destiny, by using their own library, which implements the linux containers idea.
[1] http://en.wikipedia.org/wiki/Operating_system%E2%80%93level_virtualization http://en.wikipedia.org/wiki/Operating_system%E2%80%93level_...
Updated: s/theory/idea/
- chubot 13y agoThis doesn't really make sense... the "theory" (or I would say "idea") is OS virtualization. Then you have various kernel features (namespace, cgroups, etc. -- the page mentions them). And then you have user space tools. There is no "theory" of Linux containers. It's bound to the implementation of Linux. FreeBSD jails are another, earlier, completely separate implementation of the same idea. Your analogy conflates the separate issues of abstraction vs implementation and kernel vs user space, which just confuses matters.
- WestCoastJustin 13y agoMaybe theory isn't the best word to describe what I mean. I've updated the posting s/theory/idea/. Basically, I want to illiterate the idea of something vs the implementation. > There is no "theory" of Linux containers. It's bound to the implementation of Linux. FreeBSD jails are another, earlier, completely separate implementation of the same idea. I think you have just hit upon my point re: FreeBSD jails are another, earlier, completely separate implementation of the same idea.
- SEJeff 13y agoActually you're still a bit off. This is in reference to libcontainer vs lxc only. libcontainer is a native golang library for accessing all of the linux namespace and cgroup features of the linux kernel. lxc is a project that bundles the namespace and cgroup isolation features of the linux kernel into a simple set of command line utilities. Both are not "implementations of an idea". They are abstractions ontop of the kernel features. Edit: For the parent, s/Libvert/libvirt/. It is a virtualization abstraction library written by Dan Berrange and the Redhat crew.
- deleted 13y ago[deleted]
- emmelaich 13y agoI think you're on the right track and I've had the same thought. The word I used is 'goal' or 'requirement'. Virtualisation is not an end in itself. The point of virtualisation is isolation. It is not totally successful in that and it is certainly not the only way to get some isolation. I've been meaning to put together a list of various approaches in a heirarchy of levels. It would look something like * threads * processes * users * 'virtual' ips * chroot * jails * namespaces (same kernel) * kernels (same machine) * hardware (same data centre) These are not linear or orthogonal of course.