I have used docker and lxd, what I like about docker, in theory, it can run Linux containers on macOS and Windows, now I do not really see the point of running Linux containers on a Mac in a VM, then again, it is pretty stable, and this cannot be written about Linux containers on Windows, well, no, you really cannot. Every other docker update breaks something new, Windows feature updates re-enable fast startup and that then causes you to have to restart docker after every shutdown or reboot, once docker has come up or it will list your containers and not allow you to connect to them. It uses HyperV which sucks, imho, it is dog slow. On Linux, docker is pretty solid as well and you do not need a VM, obviously, so all is good. LXD is really quite easy to setup and run as well, is Linux only, but honestly, docker on Windows is a waste, just too unstable, YMMV.