Typically the systems I work on have consistent/similiar hardware specs. One of the PLCs I have is rack based while the other is rackless. I can run either system without any actual I/O (and I don't have any I/O cards in my office anyway). The only hardware consideration for the racked PLC is that if a different CPU is specc'ed for the project. In that case I just hack the test project to use the CPU that I have.
The reason that I was talking about (docker in) VMs is that I want to move the ignition setup off of my work laptop and onto a local TrueNAS server (which is FreeBSD based). So I would need to spin up a VM of some sort to host Ignition, because I don't want to be installing the Linux binary compatibility system on the server's base FreeBSD, and you can't install that layer into a FreeBSD jail. And see here for a discussion of Ignition on FreeBSD from almost 10 years ago.
But I don't need to replicate any client Ignition system, because there are none. All the HMIs that our clients use are CIMPLICITY based. Doing what I want to do in CIMPLICITY would be a herculean task.
So it's looking like the single machine and load GW backups is the way to go.