So for each instance you want to run, make a new directory and do a fresh install in each. As long as the directories have different names, docker-compose will name them accordingly, and will ensure isolation.
Have them all bind to 127.0.0.1:8080, 127.0.0.1:8081 etc for the web interface, and differnent high-numbered ports for the XMR public address.
Then sit a reverse proxy lisening on port 80/443 in front, such that requests for subdomain1.domain.com go to 127.0.0.1:8080, requests for subdomain2.domain.com go to 127.0.0.1:8081
There’s an example in the Ubuntu guide. You’d simply define additional vhosts for each domain, pointing to the correct local port.