In using relatively new container virtualization technologies, companies and engineers have a choice: whether to install the container systems directly on bare metal hardware, or install them within a virtual machine environment. Deploying inside of a virtual machine may offer more flexibility, but it can also require more resources or limit capability.
With deploying containers into a VM, companies may need to invest in specific amounts of processing power, memory partitions or other resources. However, this may be a way to more effectively integrate container resources into a larger virtual system.
In addition, a VM deployment may be the only option for compatibility for various types of public and hybrid cloud systems.
On the other hand, some experts point out that modern container systems effectively isolate instances and provide the right kinds of implementation for bare metal employment, and that this can be much more resource-efficient and add certain kinds of capability. Bare metal employment can eliminate some bottlenecks and could help processes run outside of older virtual machine systems, which may not be high performance compared to other aspects of the system. That, plus the resources required to run inside a VM, has some techs asking why engineers would choose to deploy containers in a virtual machine. In the end, the decision to run in a VM environment can be related to less-than-optimal legacy systems and a range of practical considerations.
In general, bare metal employment of containers is often an ideal or goal that companies look at as they adopt container virtualization, in an ongoing upgrade of IT systems that can function more efficiently in highly virtualized setups.