I figured it out! It is possible to migrate from Windows 10 to a docker container but it takes a couple steps, I'll try to explain what I did.
1. BEFORE shutting down your Windows setup, back-up the Stash data files (should be folders .stash, cache, generated, metadata) the most important of these is the stash-go.sqlite file within .stash, the config is less important because you have create a new config for the docker to identify the new file paths
2. Install the Stash docker container. I kept the default folder locations within the appdata share so I knew where to move stuff, the data path should be something like /mnt/user/share/file/path/
3. Make Stash scan the new library, all of your 'media' should appear but without your precious metadata
4. Stop the Stash docker container
5. Delete *most* of the generated folders in the appdata folder and copy your original data over. You must keep the config file and folder names that the docker generated or it won't work. On Windows the config file was stored in the .stash folder but in the docker it's in a folder named config
6. Start the Stash docker container, now your metadata should be attached to all the right files (performers are attached to scenes, studios attached to scenes, etc.), BUT the files will be unplayable because it's trying to find the file where it was on Windows
7. Make Stash scan the library again and it should update the file locations while keeping your metadata in place
I hope this helps the next guy upgrading their system! Also, I didn't try this out but it might work, in Settings > Tasks there's an option to export and import JSON data, this might do the trick