我正在boot2docker 1.3.1下运行。
我有一个Docker容器通过运行Web服务器uwsgi --http :8080。
uwsgi --http :8080
如果我连接到该容器,则可以使用浏览该网站,lynx http://127.0.0.1:8080以便知道服务器正在运行。
lynx http://127.0.0.1:8080
我用以下容器运行容器:
$ docker run -itP --expose 8080 uwsgi_app:0.2
它具有以下详细信息:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5248ad86596d uwsgi_app:0.2 "bash" 11 minutes ago Up 11 minutes 0.0.0.0:49159->8080/tcp cocky_hypatia $ docker inspect --format '{{ .NetworkSettings.IPAddress }}' 5248ad86596d 172.17.0.107
我以为可以访问,从托管人访问该网站http://172.17.0.107:49159。
http://172.17.0.107:49159
这是行不通的。我只是在Chrome中看到“正在连接…”,却一无所获。
我究竟做错了什么?
好吧,愚蠢的我,我在boot2docker的文档中找到了答案 https://docs.docker.com/installation/mac/#container-port- redirection
我需要使用boot2docker vm的IP地址,而不是容器的IP,即
$ boot2docker ip 192.168.59.103
而且我可以从以下主机上浏览我的网站 http://192.168.59.103:49159/
http://192.168.59.103:49159/
我不需要route在主机上添加任何内容
route