I will appreciate if someone could introduce me to LXC and tell me how to get started with this technology? In which cases does it make sense to use, and in which should i stay away from it?
__________________________ L X C ________________________________
A container is a way to isolate a group of processes from the others on a running Linux system. By making use of existing functionality like the Linux kernel's new resource management and resource isolation features (Cgroups and name spaces), these processes can have their own private view of the operating system with its own process ID (PID) space, file system structure and network interfaces.
Containers share the same kernel with anything else that is running on it, but can be constrained to only use a defined amount of resources such as CPU, memory or I/O. By combining containers with other features like the Btrfs file system , it will be possible to quickly set up multiple lightweight isolated Linux instances on a single host. Therefore containers are better compared to Solaris zones or BSD jails.
Making LXC easier
One of the main focus for Ubuntu LTS was to make LXC dead easy to use, to achieve this. Creating a basic container and starting it on Ubuntu
This will default to using the same version and architecture as your machine, additional option are obviously available (–help will list them). Login/Password are ubuntu/ubuntu.
Open Web Browser and Connect
LXC which is an abbreviated way of saying LinuX Containers is an operating system-level virtualization method for running multiple isolated Linux systems which are called containers on a single control host. Since LXC provides operating system-level virtualization, it is not via a full blown virtual machine, but rather it provides it's own virtual environment that has its own process and network space.
LXC relies on the Linux kernel cgroups (Control Groups) which is developed as part of LXC which is a feature to limit, account and isolate resource usage (CPU, memory, disk I/O, etc.) of process groups. It also relies on other kinds of namespace-isolation functionality, which were developed and integrated into the mainline Linux kernel.
In Ubuntu you can find tools like Juju that are used with LXC. You can even find several tutorials:
To use LXC and it's benefits I recommend reading the Ubuntu Guide for Juju
Official Site - http://sourceforge.net/projects/lxc/
I think a better question is what do you want to do with LXC?
I would start with the community documentation and ask specific questions about specific things you do not understand.
LXC can be used to isolate services or other processes from the host although the isolation is not always perfect.
LXC is, IMO, in rapid development and it may help if you subscribe to the mailing list.
Distrowatch also did a nice overview last week