What I expect is that Nginx receives connections to ports 80 and 443 and forwards them to port 8080 inside of its container, which will then be forwarded to port 8080 of the host machine to the Node app (

If you're still getting a bind: address already in use, that's because more than one service is listening to that address. Use netstat or lsof (linux|osx) to figure out what process is listening to 8080.