Most of us should have used cloud application. Its one beautiful feature is that it scales based on load. Traditional Cloud creates multiple computer OS in the server box for scaling purpose. However, it is not best approach( Refer below quote)
"Instead of having 100 VMs per server, what if I can give you thousands of hardware-isolated applications?" Crosby said. "And, it's not just about efficiency. I don't want to have to boot an instance of Windows or Linux every time I want a new application. That's just a total waste of time."
So, there is still scope to improve. Docker tries to fill this gap.
Below diagram depicts architectural difference between Virtual machine and Docker containers.
http://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-normal-virtual-machine
http://searchservervirtualization.techtarget.com/feature/Is-Docker-resurrecting-container-virtualization-in-time-to-kill-VMs