无法连接到在 docker 容器内运行的嵌入式底层服务器



我正在尝试在 docker 容器内运行嵌入式 undertow 服务器。当我在机器中运行以下代码片段时,我可以点击返回"Hello World"的 http 端点。但是当我在 docker 容器中运行相同的代码时,我无法访问端点。

public class HelloWorldServer {
    public static void main(final String[] args) {
        Undertow server = Undertow.builder()
                .addHttpListener(8080, "localhost")
                .setHandler(new HttpHandler() {
                    @Override
                    public void handleRequest(final HttpServerExchange exchange) throws Exception {
                        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                        exchange.getResponseSender().send("Hello World");
                    }
                }).build();
        server.start();
    }
}

我从以下链接中找到了上面的例子 http://undertow.io/undertow-docs/undertow-docs-1.4.0/index.html

这些是我为生成和运行容器而执行的以下命令。

docker build -t z .
docker run -d -p 8080:8080 -t z

暗流服务器无法将 http 侦听器与我的机器的 IP 绑定。而不是指定

localhost

我改成了

InetAddress.getLocalHost().getHostAddress()

它将侦听器与我机器的 IP 绑定。现在我可以点击端点了。

相关内容

  • 没有找到相关文章

最新更新