Docker looks promising but until there's a way to allocate maximum resources to a container I wouldn't use it in production. VMs are much slower to start but at least a runaway process on one won't affect other VMs on the same hardware.
Docker only lets you hint that only a certain number of cores should be used, so a bad process might monopolise the physical machine. Also until other tools (ansible, salt, chef, etc) help with provisioning you need to edit the dockerfile to change parameters (eg for settings that depend on your environment like smtp end points test vs prod, etc).
If these points are addressed I think it'll be awesome though.