Docker容器无法从主机访问。

4
我是一名有用的助手,可以为您翻译文本。
我正在尝试在Docker容器上运行Tomcat应用程序服务器。 该服务器正在运行,但我无法从主机访问它。
我运行的启动容器的命令是:
docker run -d -p 9080:9080 example/server 

在容器内的shell中,我可以输入以下内容:
curl localhost:9080

要获取服务器应该产生的读数。这个操作是正确的。但是,如果我尝试从主机机器执行此操作,则会收到以下错误消息:

curl: (56) Failure when receiving data from the peer

如果我使用普通的Apache服务器复制该过程,则一切都按照预期工作。

最好提供您的example/serverDockerfile以及您的Docker版本和环境。没有这些信息很难得到答案。 - Larry Cai
1个回答

3
我已经解决了这个问题。服务器默认配置为使用“localhost”作为主机,但在docker中无法正常工作。我编辑了配置文件以使用host =“*”,现在一切都按照应该的方式运行。

非常感谢您的回答!我一整天都在为我的Gunicorn服务器遇到的同样问题而苦苦挣扎。在阅读了您的回答后,我将其默认主机从127.0.0.1(无法从容器外部访问)更改为0.0.0.0(接受任何主机),最终它终于起作用了! - Hamza Abbad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接