With 20,000 partners and attendees converging at VMworld in Las Vegas this week, we often get asked if containers are replacing virtual machines (VMs). Many of our Docker Enterprise customers do run their containers on virtualized infrastructure while others run it on bare metal. Docker provides IT and operators choice on where to run their applications – in a virtual machine, on bare metal, or in the cloud. In this blog we’ll provide a few thoughts on the relationship between VMs and containers.
Point #1: Containers Are More Agile than VMs
At this stage of container maturity, there is very little doubt that containers give both developers and operators more agility. Containers deploy quickly, deliver immutable infrastructure and solve the age-old “works on my machine” problem. They also replace the traditional patching process, allowing organizations to respond to issues faster and making applications easier to maintain.
Point #2: Containers Enable Hybrid and Multi-Cloud Adoption
Once containerized, applications can be deployed on any infrastructure – on virtual machines, on bare metal, and on various public clouds running different hypervisors. Many organizations start with running containers on their virtualized infrastructure and find it easier to then migrate to the cloud without having to change code.
Point #3: Integrate Containers with Your Existing IT Processes
Most enterprise organizations have a mature virtualization environment which includes tooling around backups, monitoring, and automation, and people and processes that have been built around it. By running Docker Enterprise on virtualized infrastructure, organizations can easily integrate containers into their existing practices and get the benefits of points 1 and 2 above.
Point #4: Containers Save on VM Licensing
Containerized applications share common operating system and software libraries which greatly improves CPU utilization within a VM. This means an organization can reduce the overall number of virtual machines needed to operate their environment and increase the number of applications that can run on a server. Docker Enterprise customers often see 50% increased server consolidation after containerizing which means less hardware costs and savings on VM and OS licensing.
What About Bare Metal?
Just as organizations have reasons for using different servers or different operating systems, there are reasons that some organizations will want to run containers directly on bare metal. This is often due to performance or latency concerns or for licensing and cost reasons.
What About Security?
Containers are inherently secure on their own. Docker containers create isolation layers between applications and between the application and host and reduce the host surface area which protects both the host and the co-located containers by restricting access to the host. Docker containers running on bare-metal have the same high-level restrictions applied to them as they would if running on virtual machines. But Docker containers also pair well with virtualization technologies by protecting the virtual machine itself and providing defense in-depth for the host.
And the Winner Is…
In the end, Docker containers can run inside a virtual machine or on bare metal – the choice is up to you. Just like every other decision in the data center, the path you want to go down should align to your business priorities. Containers work well with virtual machines, but they can also run without them.
To learn more about the relationship between containers and virtual machines, check out these resources: