Ein CT/LXC ist eine eigene Instanz, die auf dem Host OS aufsetzt. Das benötigt weniger Ressourcen, da der "Sockel" = OS des Host mit benutzt wird.
Nachteile: ein CT ist nicht so gut isoliert wie eine eigene VM, und ein erhöhtes Sicherheitsrisiko. Bei Änderungen am Host OS kann das Auswirkungen auf alle CTs haben. Insbesondere wenn man eine Instanz seeehr lange verwenden möchte, ist ein LXC eher kontraproduktiv. Eine VM ist unabhängig vom Host OS lauffähig und so besser "konserviert".
Das gleiche gilt für Docker Anwendungen: Kleinkram mit wenig Daten oder den man mal eben neu aufgesetz bekommt, kann man alles auf eine Docker VM packen. Für Instanzen die viel Speicher benötigen und/oder komplexere Setups haben, weil sie aus mehreren Containern bestehen die nur im Zusammenspiel funktionieren, macht man eine eigene VM.
LXCs sind zwar ganz nett, aber Ressourcen sind heute keine Problem mehr... eine eigene Debian VM ohne GUI frisst < 500 MB Ram und < 2 GB auf der Platte. Das hat auf einem Rhaspberry noch Sinn gemacht, aber selbst auf preiswerter Hardware sind Ressourcen kein Problem mehr. Einsteiger Mini PCs aka China-Boxen mit Intel n100, n150 etc werden of mit 12GB Ram und 1TB SSD für ~200 Euronen oder weniger angeboten. Und wenn man mehr braucht, wird halt aufgerüstet.
LXC kann man aber hervorragend nehmen, um div. Anwendungen zu testen:
https://community-scripts.github.io/ProxmoxVE/scripts
Die Proxmox Helper Scripte sind i.d.r. 1-Zeiler und erzeugen mit minimalem Aufwand eine lauffähige Instanz. So Kleinkram wie Wireguard oder PiHole kann man als LXC laufen lassen, für Nextcloud oder Paperless würde ich eigene VMs aufsetzen.