Here’s a quick method:
Get the IP and set up the dns for the new server. Get a cert via Let’s Encrypt or self sign to get ssl working, and then start your prep.
On the new host create the new directory structure. Note your folders, paths, and permissions. Set the permissions on the pictrs folder as 991 (sudo chown 991:991 /path/to/pictrs/folder even if that user doesn’t exist on your system. It’s for the container.
You’ll need to edit your yml files, docker compose file, and make sure that the paths are updated, the instance name is correct, and federation is disabled (until testing is done).
Copy pictrs and db folders from old host to new. You can skip pictrs if space is a concern, but you’ll lose your instance pics.
Once done, copy over the containers and bring them up.
Check for errors and diagnose as necessary.
Once set, change the federation to on, switch your dns from old server to new, and then perform another sanity test.
I’ve used Hyper-V and in fact moved away from ESXi long ago. VMWare had amazing features but we could not justify the ever-increasing costs. Hyper-V can do just about anything VMWare can do if you know Powershell.