non può raggiungere l'applicazione web dall'host docker (non docker-machine)

Ho un semplice contenitore di applicazioni web in esecuzione sul motore docker per mac (v.1.12.5) utilizzando quanto segue:

docker run --rm -p 80:8089 test-app

Ho controllato il IP del mio contenitore in Reti> ponte di quanto segue:

docker inspect $(docker ps -l --format "{{.ID}}")

 "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "f53f1b93aa0f2fda186498d30e7f6e5b97ba952d1b6fe442663ac6025fd74ce3", "EndpointID": "178937cf211c2360d9f9c594891985637d1d82a334a40b1b46d3acb2ea8aaf20", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.2", // <- use this? "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:02" } } 

Per quanto mi riguarda, gestisco il mio contenitore di applicazioni web sul mio motore docker direttamente sul mio computer porttile (non tramite docker-machine ). A questo punto, non sono tanto interessato a farlo funzionare piuttosto che alla comprensione.

Il mio contenitore ha un IP 172.17.0.2 assegnato che ho incollato sopra e ho mappato il mio contenitore di applicazioni web (con un EXPOSE 80) alla port 8089 tramite il flag di docker run -p .

Ho l'impressione che dovrei essere in grado di raggiungere la mia applicazione web all'indirizzo http: // 172.17.0.2:8089, ma non ho alcuna risposta. Perché?

Se il process nel contenitore si ascolta sulla port 80, la tua bandiera -p dovrebbe essere viceversa -p 8089:80 . Il servizio può essere raggiunto a localhost:8089 .