Stuck on Docker's Tutorial! Do I need root permissions to bind to a port below 1024?

The important detail of that SO question is that ports that aren’t 80 work fine (e.g., docker run -p 4000:80 makes http://localhost:4000/ work). So you’re definitely on the right track. The easiest path might just be to pick some “high” port.

The other important detail of that SO question is that you’re on a Mac. ISTR there are weird issues with “low” ports on the Mac; Configuring macOS Application Firewall to allow LAN access to container exposing port 80 - #2 by lephleg may or may not be related.

That’s historically true but kind of irrelevant. If you look in detail, parts of the Docker ecosystem run as root, and if you’re running Docker commands, you are root. (On a Linux system, you generally need root permissions to run Docker commands at all; on a multi-user system you could for instance mount anybody’s home directory into a container and bypass host permissions entirely.)