It has been time i've been waiting for LXC to be stable to use in production.
Let me tell you why i think that: LXD works like a daemon for LXC, it allows you to establish a communication handshake between your LXC client and any machine you have with LXD hosting several containers.
Lightweight and simple, just pop your command-line client and start creating, starting, stopping, cloning and snapshotting. Moving containers between LXD hosts it's also as easy and performant. Here are the main LXD advantages:
Secure by design (unprivileged containers, resource restrictions and much more)
Scalable (from containers on your laptop to thousand of compute nodes)Intuitive (simple, clear API and crisp command line experience)Image based (no more distribution templates, only good, trusted images)
If your in Ubuntu 16.04 LTS, just start by :
$> sudo lxd init
If that's not enought, then also do:
$> sudo apt-get install lxd
This will install the LXD daemon, client tools and also LXC. LXD is not a replacement for LXC, it's just a daemon and a new set of client libraries and tools that allow you to manage remote servers that host the containers.
Now you can create a new container:
$> lxc create odoo1
Or in a remote host:
$> lxc create host1:odoo1
List existing containers:
$> lxc list host1:
Get access to the container's console:
$> lxc exec host1:odoo1 bash
Lots of other commands just use --help$> lxc --help
config - Manage configuration
copy - Copy containers within or in between lxd instances.
delete - Delete containers or container snapshots.
exec - Execute the specified command in a container.
file - Manage files on a container.
help - Presents details on how to use LXD.
image - Manipulate container images.
info - List information on LXD servers and containers.
launch - Launch a container from a particular image.
list - Lists the available resources.
move - Move containers within or in between lxd instances.
profile - Manage configuration profiles.
publish - Publish containers as images.
remote - Manage remote LXD servers.
restart - Changes state of one or more containers to restart.
restore - Set the current state of a resource back to a snapshot.
snapshot - Create a read-only snapshot of a container.
start - Changes state of one or more containers to start.
stop - Changes state of one or more containers to stop.
version - Prints the version number of this client tool.
In the remote host, you need to do the following for getting access:
lxc config set core.https_address "[::]"
lxc config set core.trust_password some-password
We sure love the concept and will be testing this "stable version" on test servers first ;)