Not an answer, but an additional information. I am having the same issue with varnish. I tried a different docker image to listen on port 80 and it works:
docker run --rm -it -p 80:80 strm/helloworld-http
But varnish gives the same error as author posted. The very same varnish config/run command on a different server works just fine.
So the bottom line, it's not as simple as "requires root to acquire port 80". Cause other images use port 80 just fine. At the same time the very same varnish config on a different server work well. So it must be smth on the cross of a particular docker config and the internals of a varnish image.