This topic is quite a good question
I’m in the same kind of question, rather use docker inside LXD so there is an easy way to deliver application ready to use inside an LXD container witch act like the envelop
If containers are moving from one server to another one, application provided by docker are still working , using local FS (inside the container) .
I think docker is great to provide software. You want an NGINX, you want a MySQL , you want a Wordpress… It’s easy to launch one .
You want to upgrade or change de version, same thing, update the image, pop a new one.
I think if you are not using this kind of features provided by docker, then, going full LXD is good.
@rkelleyrtp is right, managing LXD container is quick time consuming when running several LXD HOST with several LXD container.
But the good thing is, you have the software already in your LXD image, you know what you have built and the way you wanted. It’s not as flexible as docker regarding the software I think, but still a good option depending your needs.
I found more trendy to pop a docker container NGINX than using “apt install nginx”
But once again I think it’s quite difficult nowadays to make a good choice. Here are the options available to each person that want a new platform that work at scale :
1- Pure LXD
Build your containers, include the software you need and go production
PRO: easy to setup, easy to maintain when you have one node, no big learning curve , sounds more like “déja vu”
CON: does not scale out , it’s possible, but not out of the box. No orchestration tools, no web ui to help you managing your containers
2- LXD + Docker
Build and ship your software with something you know, something you trust .
PRO: one box, multiple software , you get the benefice of launching docker containers with software already ready or as you define it. Easy to build, easy to maintain , small learning curve too
CON: more layer of virtualisation , maybe less performance. Integration with docker is not the best from my small experience
3- Docker with Kubernetes / Rancher
Going full docker, forget about LXD
PRO: orchestration , integration and automation too (built-in) are here, you focus on software delivery
CONS: big learning curve, more suitable for big infrastructure , more complex
4- Going with something in between OpenNebula
OpenNebula, like Proxmox are moving more and more to LXD containers.
Not sure if they are relevant in this context , but it’s still an option to build a plateforme
For my I found it very challenging to pick one solution or the other and it get even more complicated when you wanna think about :
- Storage (yes, that something important . Better if you can have it distributed… but how… )
- Openstack vs Vmware vs Barre metal (Hello MAAS)
- Network , what would give us the best (bridge, Openvswitch , etc…)
Hope it gives your another point of view .
In your case, if you feel it’s not necessary , drop docker, stay full LXD . You might have more container to manage but less check about docker container to do.