Containers are lightweight, but in terms of maturity of the technology, and security, they are considerably behind VMs.

To get the best of both worlds, use containers inside virtual machines.

More often it would be more expensive to redesign the application for containerization than to continue running the application on a VM.

Often containers are "force fit" to a use case.

If you want to containerize your application, this application needs to be designed with containerization in mind. Effectifely, containerization costs more initially than either virtualization or not using virtualization.

While you can move a particular application like SAP into a container, it does not mean you should.

Security

A common myth is that "containers are not secure". This might have been true around 2016, when it was common to run containers inside a virtual machine for security. In 2020 however, running containers in VMs can be done if it makes you feel more secure, but is unnecessary. As of 2020, containers may be secure than VMs.

After: David Linthicum, DevOps Foundations: Containers