There is bunch of software that makes this easier than trivial too, one example: https://github.com/g1ibby/auto-vpn/
1. Have some external firewall outside of the Docker host blocking the port
2. Explicitly tell Docker to bind to the Tailscale IP only
Does it? I think it only happens if you specifically enumerate the ports. You do not need to enumerate the ports at all if you're using Tailscale as a container.
I have a tailscale container, and a traefik container. Then I use labels with all my other containers to expose themselves on Traefik.