also, VMs CAN "share" memory. ie VMs can dedup memory between themselves. On Linux at least.
Not saying docker/lxc and all things namespaces are bad at all - but setting things straight. VMs can do this:)
Checkout KSM for memory "sharing" and any overlay-style file system that is mounted by VMs (this one works exactly the same as when you use namespaces/docker/lxc in fact)