LXD based on Linux Containers is simple to install, use and is extremely flexible. I automate all my solutions using the Pylxd module which allows complete control over LXD container creation and configuration including networking and proxies etc.
LXD supports cloud-init which makes templating the base package, user and configuration painless.
Each LXD instance is a full Linux instance so setting up multiple tasks/processes via the standard systemd of each instance is quick and easy.