Containers are sets of tools that package an application and all of its dependencies so that it can run on any Linux system or distribution. This paper deals with the onset of containers and how they immensely help drive the productivity of developers. Chief benefits include: configuration simplification, enhanced developer productivity, server consolidation and management, application isolation, rapid deployment, and build management.
The authors compare and contrast the difference between a virtual machine and a container in terms of communication with the underlying hardware, security, performance, and storage, to name a few, and then further dive into a comparison between open-source containers such as Linux Containers (LXC), Docker, Warden, and OpenVZ.
I recommend reading this paper to get a glimpse into the direction cloud computing is heading.