Do not install postgres.
That is expected, because you haven’t installed Discourse to be the web server.
Then you (almost certainly) still have the issue that your VM does not have its ports exposed to the internet.
IT does not. It clearly states that Discourse does not have access to the port. The your curl command shows that something else has control of port 443
I think that the container built successfully but either it can’t start because something else has port 443, it’s not doing anything because port 443 is routed somewhere else.
You can try
docker ps
to see if any containers are running and
docker logs app
To see what discourse has logged via docker.