网页只在本地可见
webpage only visible locally
en1 (local machine): 192.168.1.5 /24
vboxnet0: 192.168.99.1 /24
docker-machine ip: 192.168.99.100
docker daemon: tcp://192.168.99.100:2376
docker0 (bridge): 172.17.0.1
然后我 运行 容器:
docker run -p 5000:5000 friendlyhello &
container's ip: 172.17.0.2/16
但是我只能在 192.168.99.100:5000 看到网页 运行ning,而且只能在我的本地机器上,不能从连接到局域网的任何其他机器上看到。此外,网络应用程序 friendlyhello 使用微框架 Flask 来提供页面。
如何从局域网或互联网上另一台机器上的浏览器查看 webapp?
您的容器 运行 在 docker-machine 创建的 VM 中,虽然您已经为容器发布了端口 5000,但 docker-machine 上的端口不是可直接从 LAN 的其余部分访问。您必须将本地主机中的端口 5000(或您喜欢的任何其他端口)转发到 VM 中的端口 5000,以便从 LAN 的其余部分获取流量。
按照此 中的建议,您应该使用如下内容:
docker-machine ssh default -L 5000:localhost:5000
en1 (local machine): 192.168.1.5 /24
vboxnet0: 192.168.99.1 /24
docker-machine ip: 192.168.99.100
docker daemon: tcp://192.168.99.100:2376
docker0 (bridge): 172.17.0.1
然后我 运行 容器:
docker run -p 5000:5000 friendlyhello &
container's ip: 172.17.0.2/16
但是我只能在 192.168.99.100:5000 看到网页 运行ning,而且只能在我的本地机器上,不能从连接到局域网的任何其他机器上看到。此外,网络应用程序 friendlyhello 使用微框架 Flask 来提供页面。
如何从局域网或互联网上另一台机器上的浏览器查看 webapp?
您的容器 运行 在 docker-machine 创建的 VM 中,虽然您已经为容器发布了端口 5000,但 docker-machine 上的端口不是可直接从 LAN 的其余部分访问。您必须将本地主机中的端口 5000(或您喜欢的任何其他端口)转发到 VM 中的端口 5000,以便从 LAN 的其余部分获取流量。
按照此
docker-machine ssh default -L 5000:localhost:5000