LXD is a container hypervisor, and allows you to create machine containers. These are containers that behave like computers/machines, meaning that the boot up and stay running. It is possible to run GUI programs in them, therefore you can confine an application into a container and still be able to run it.
I was unable to get TeamViewer 13 to work in a LXD container. TeamViewer 13 would not be able to connect to the network at all, and could just show that it can connect to local network computers.