我已经设置了一个 java 应用程序,它充当 Web 服务器并处理 http 请求。我已经测试过它在容器外工作(它确实如此),但是在容器中时我的请求似乎没有得到它。
服务器监听 3971 端口,Dockerfile 如下所示:
FROM java:8
ADD VaultServer /
EXPOSE 3971
EXPOSE 3972
ENTRYPOINT ["java", "-jar", "VaultServer.jar"]
调用根地址应该返回一些东西(通常我会发送一个 GET 到 http://localhost:3971/ )。
我尝试用 docker-machine 的 ip 地址替换“localhost”,也尝试用检查服务器正在运行的容器时获得的 ip 地址替换,但似乎都没有响应。当我调用 docker-machine 的 ip 地址时,我得到 ERR_CONNECTION_REFUSED。我还需要启用其他功能吗?
原文由 Andy 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在执行 EXPOSE 3972,它将端口暴露给其他 链接 的容器,但不暴露给主机
要将端口暴露给你做的主机……
你也可以做…
这会将 EXPOSE 公开的所有端口公开给主机(这不是默认设置 - 您必须在此处使用 -P 标志)