簡體   English   中英

無法連接到docker容器內運行的嵌入式服務器

[英]Can't connect to embedded undertow server running inside docker container

我正在嘗試在docker容器中運行嵌入式底層服務器。 當我在我的機器中運行以下代碼片段時,我能夠點擊返回“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綁定在一起。 現在我可以點擊端點了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM