Docker公开/发布(NOT SIMPLE localhost-> 0.0.0.0解决方案)

时间:2016-03-26 11:20:14

标签: docker

当我使用“-p 8000:8000”,“ - p 8000”或“--expose 8000”在我的docker中运行服务器时,我只能连接到它,但它似乎无法连接到它回复。首先,它不是经典的localhost-> 0.0.0.0有问题,因为我只使用0.0.0.0作为主机。我尝试使用Flask和“python -m SimpleHTTPServer”并且都没有用。另一个有趣的(也可能是相关的)问题是我根本无法从Docker实例联系外部。例如。如果我运行ping 8.8.8.8我得到无法访问的主机。

修改

我可以复制错误的最简单方法是 创建一个名为runner的bash脚本,其中包含以下内容 ping -c 2 8.8.8.8

呼叫

sudo docker run -v ${PWD}:/app -w /app ubuntu ./runner

与脚本位于同一目录中。 这给出了以下输出

PING 8.8.8.8 (8.8.8.8): 56 data bytes 92 bytes from c2fc631db1cd (172.17.0.49): Destination Host Unreachable 92 bytes from c2fc631db1cd (172.17.0.49): Destination Host Unreachable --- 8.8.8.8 ping statistics --- 2 packets transmitted, 0 packets received, 100% packet loss

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。显然Docker可能会以某种奇怪的方式使其网络接口陷入僵局。这给人一种错误,即您没有正确转发,但实际上,如果您使用网络接口,则无法通信任何方向。解决方案是重新启动Docker服务(而不是计算机)。这可以在JFileChooser的Ubuntu(可能是其他Linux发行版)中完成。