一尘不染

如何从主机访问Docker容器的Web服务器

docker

我正在boot2docker 1.3.1下运行。

我有一个Docker容器通过运行Web服务器uwsgi --http :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

这是行不通的。我只是在Chrome中看到“正在连接…”,却一无所获。

我究竟做错了什么?


阅读 1155

收藏
2020-06-17

共1个答案

一尘不染

好吧,愚蠢的我,我在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/

我不需要route在主机上添加任何内容

2020-06-17