I recently wrote an article that covers some of this ground: http://www.sitepoint.com/docker-for-rubyists/
The basic idea behind Docker is that you don't have to create another operating system in order to just separate your processes from each other. This leads to containers being much more lightweight than virtual machines but also significantly less powerful (i.e. powerful as in ability to do something, not in terms of performance) in some areas.