Containers are the default type for LXD and currently the most featureful and complete implementation of LXD instances.
They are implemented through the use of
See instance configuration for valid configuration options.
LXD supports live migration of containers using CRIU. In
order to optimize the memory transfer for a container LXD can be instructed to
make use of CRIU's pre-copy features by setting the
migration.incremental.memory property to
true. This means LXD will request
CRIU to perform a series of memory dumps for the container. After each dump LXD
will send the memory dump to the specified remote. In an ideal scenario each
memory dump will decrease the delta to the previous memory dump thereby
increasing the percentage of memory that is already synced. When the percentage
of synced memory is equal to or greater than the threshold specified via
migration.incremental.memory.goal LXD will request CRIU to perform a final
memory dump and transfer it. If the threshold is not reached after the maximum
number of allowed iterations specified via
migration.incremental.memory.iterations LXD will request a final memory dump
from CRIU and migrate the container.