The security around the containers still isn't as good as a hardware VM, but I think hardware segregation is on the road map.
It's ideal for running container inside VMs, though, and offers nice management segregation on those larger VMs.
However, the development of Zones and Jails (on SunOS/Solaris/illumos and FreeBSD) was much more security focused, with the default being "that's not allowed in a (Jail|Zone) until we can make sure it's safe". I really wish Linux had just ported Jails or inspired their security model on them.
I do a lot of work with the internals of Docker and runC at SUSE. Trust me, it's not pretty how you have to set up "Linux containers" and there's 1001 gotchas.
You can have as many processes as you like running inside a Docker container, you just a need a single process to "boot" them, even if it's a simple shell script.
Docker can't currently do that, largely because running a distro in a container isn't an important goal for them.
PS.
Try it:
docker run -dt --stop-signal=$(kill -l RTMIN+3) -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name centos7_systemd vlisivka/docker-centos7-systemd-unpriv
This is what makes LXD so nice. It's the power and flexibility of a VM with the speed, api, and runability of containers.
I always hated that docker forced you to treat a container as a single process and spoke about it as if it's a virtue. Let me decide how many or little processes I want running in a container. Even google runs ssh server alongside their applications.
With LXD you can easily port entire services over to containers without completely rewriting the way they behave.