HPE Ezmeral: Uncut

Containers vs. VMs: What’s the difference?

Containers and VMs have their own strengths, so which should you choose?  

Containers-vs-VMs-whats-the-difference.pngContainers have transitioned from being an experimental development platform -- to becoming a transformative solution where application growth is thriving. Yet, that doesn’t mean virtual machines (VMs) are suddenly out of the picture.

A search of the internet will provide many articles highlighting the technical comparisons between a container and a VM. Articulating the advantages of one over the other in terms of business needs requires a closer look.

Provided below is a helpful chart to quickly identify when you should use each.


A quick look at what’s in the package

Containers take only what the application needs and share system resources like OS, CPU, and memory, thereby making them easier to deploy. VMs, on the other hand, take up many system resources within each image. This translates into a lot more memory and CPU cycles being used. Because of their agile nature, containers are the deployment of choice in development and testing environments.

Additionally, containers operate on a common or shared operating system, while the hypervisor can run on any operating system. If you have one or a few consistent sets of applications on a single operating system, consider containers. If you have diverse applications with varying operating systems, consider VMs. As containers are becoming more mainstream it is common to see them hosted in VM settings.

And yes, it’s all about the money

Since containers don’t package system resources as much as VMs, you can run at least twice (or more) the number of applications on the same server with containers versus VMs. This advantage maximizes resource usage and brings down operating costs. Consequently, containers are more popular with agile development and testing, which speeds up time to market.

Both container and VM sprawl are a real problem that administrators face. However, because of the elasticity and portability of containers, they can easily be doubled or tripled to run the same set of applications, compared to VMs. Therefore, although you can package more applications on a single host server with containers, if you run more containers than you need, you will end up consuming more resources.

Put simply, if you are looking to develop applications or run a single or a handful of applications in multiple instances and your resource footprint is a concern, consider containers. If you are looking to run multiple applications and your resource footprint can be fluid, consider VMs.

You must also consider security

Security has been the single biggest concern around containers. Containers, by their very nature of sharing OS, require root access, which makes the data vulnerable and at risk for unauthorized access. While there are several workarounds for this issue, they are quite lengthy and need to be worked out in detail.

VMs, on the other hand, have a robust, rich set of security services that make them attractive for sensitive data and for production environments. VMs also have a very mature ecosystem in terms of network, storage, data protection, and recovery that can make them better for production environments.

Forecast: mostly cloudy

Cloud solutions have made huge strides in the services they offer. However, the cost of using the cloud is not always significantly lower – as one might expect.

The elasticity of containers allows organizations to create containers on demand and tear them down when done. Scaling your services up and down in the cloud by spawning new containers is easier and more cost-effective than it is with VMs.

Containers in the cloud also allow you to use only the minimum cloud resources you need for your service. Therefore, you can more easily keep your subscription costs down.

In a nutshell, what should you choose?

If you have a heavy development, test, or integration environment, you will probably want to switch to containers. If you have multiple applications with varying characteristics requiring a secure environment, I suggest you stay on VMs.

If you are looking to deploy in the cloud or offer services in the cloud, standardizing the deployment in containers will be a good idea. Containers and VMs have their own strengths but they can coexist in both data centers and in the cloud.

To learn more about containers and HPE container solutions, visit the HPE Container Platform web page. You can also download a free technical white paper, HPE Ezmeral Container Platform, Software architecture overview.

About the author:

Matt Morris.png

Matt Morris

Matt has spent the past 25 years road cycling, playing guitar and golf, assembling Legos with my kids and once in while working on a car. Occasionally he can be found building, testing, marketing, selling high-performance data solutions (database, storage, compute), and guiding customers on their cloud journey. Today he is focused on the HPE Ezmeral Container Platform, an elastic platform designed to operate and or scale workloads from the edge to the cloud.




Hewlett Packard Enterprise


About the Author