This may be a silly question, but what are VMs generally used for in a corporate setting? Is it the same use case as docker?
In large scale computing, a server will have VERY powerful hardware. You can run multiple VMs on that one machine, giving a slice of that power to each VM so that it basically ends up with multiple individual computers running on one very powerful set of hardware instead of building a ton of individual.
Similar to docker, but the technical differences matter a lot. VMs have a lot of capabilities containers don’t have, while missing some of the value on being lightweight.
However, a more direct (if longer) answer would be: all cloud providers ultimately offer you VMs. You can run docker on those VMs, but you have to start with a VM. Selfhosted stuff (my homelab, for example) will also generally end up as a mix of VMs and docker containers. So no matter what project you’re working on at scale, you’ve probably got some VMs around.
Whether you then use containers inside them is a more nuanced and subtle question.
Running a virtual server allows you to run a server application on its own virtual machine, this eliminates the chance that (when running multiple applications from a server) the underlaying requirement for each apllication conflict.
In comparison to docker the full server can offer more native capabilities for some applications, while other applications simply only run on a full OS.
So by virtualizing the servers one large piece of Hardware can be used to run multiple servers and you can (sometimes dynamically) allocate resources as needed.
The backups can consume all computing power put of office hours while the other applications share during Office hours as needed… sometimes a bit more for VM A and sometimes a bit more for VM B.
Off course monitoring overallocation is a thing as you might end up with bottlenecks caused by peak loads that occur at the same time… the issue would be bigger when running on dedicated hardware.
And off course having multiple hardware platforms interconnected allows for a VM to be moved from hardware platform to hardware platform without interruption (license required) meaning you can perform hardware maintenance without an outage.