Containers will never replace VMs either. People will be running WASM inside of containers inside of VMs.
AWS Fargate / Lambda are Firecracker VMs. EC2 are normal VMs.
That is, you need a Linux kernel underneath for the containers to run on. More often than not, that Linux kernel is running in a virtual machine.
When you run Docker Desktop on your Windows or macOS machine, how do you think it runs that Alpine Linux container? It works because there is a virtual machine running Linux that all the Docker containers run on top of.
If you are running Linux directly on real hardware, your containers do not need a VM. Everywhere else, they do.
Turns out only containers is not secure enough.