网页只在本地可见

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的网页,只能在本地机器上运行,而不能从连接到局域网的任何其他机器上运行。 此外,Web应用程序friendlyhello正在使用微框架Flask来提供页面。

如何从LAN或Internet上的另一台计算机上的浏览器查看Web应用程序?

您的容器运行在由docker-machine创build的虚拟机中,尽pipe您已经为您的容器发布了端口5000,但您的Docker机器上的端口不能直接从局域网的其他端口访问。 您必须将本地主机上的端口5000(或您喜欢的任何其他端口)转发到VM中的端口5000,以便从局域网的其余部分获取stream量。

正如在这个回答的问题中,你应该使用这样的东西:

 docker-machine ssh default -L 5000:localhost:5000