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