LXD
is based on liblxc
, its purpose is to control some lxc
with added capabilities, like snapshots or live migration. LXD
is linked to LXC
and they are OS centered.
Docker
is much more application centered, based at the beginning on LXC
but now independent from LXC
, it can use openvz
or whatever. Docker
only focuses on application with lib and dependency, not on OS.
look at this for more : https://www.flockport.com/lxc-vs-lxd-vs-docker-making-sense-of-the-rapidly-evolving-container-ecosystem/
Regards.