You create say 3 instances of that image (i.e. 3 containers) with different port mappings 5001:80, 5002:80, 5003:80. These are just specified at the command line (docker run -p5001:80)
Against the same containers you might also do 6001:22, 6002:22, 6003:22 to expose SSHD to different ports on the host.
This allows you to defer the decision of which containers will be listening where to deployment or runtime, giving you lots of flexibility.