Is it possible to have multiple instances of Node-Red running on the same machine/server using docker, and if so is it possible to access each simply through different ports?
Yes it is possible. Just specify the port. Don't have anyway of checking right now but it's definitely possible and nothing out of the ordinary for docker. Search how to use environmental variables and docker - there are plenty of examples.
Yep - but you will need to mount/point to different data volumes to store your flows (as Docker is non-persistent when it comes to storage, and expose a different port in each instance
You will also need to give some thought to Internode communication (Docker to Docker) if it will be a requirement for your NRs to communicate and configure the docker host accordingly
I do this. One as a Home Assistant add-on which therefore uses the default port 1880, and another as a separate container defined as
-p 1881:1880 - outside the container it's 1881 and inside it's 1880.
Yes, I run 9 instances on one Pi