Virtual Machines let us abstract away our hardware resources. They also made deploying new instances much easier than it was previously, so we started using more instances than we would ahve without it, just to provide configuration and resource separation.
The first part is still necessary - and we still need multiple instances to take advantage of multiple VM hosts when it comes to scaling and redundancy. The second part is what containers address.
I have a feeling we will end up mixing and matching the two as appropriate.