簡體   English   中英

無法到達具有Network_Mode主機的Tomcat Docker容器

[英]Tomcat Docker Container With Network_Mode Host Can't Be Reached

我正在使用docker版本的Ubuntu 16.04 LTS

Docker版本18.03.1-ce,內部版本9ee9f40

使用網絡模式主機啟動Tomcat服務器時,無法訪問它。

$ sudo docker run --rm -d --network host -p 8888:8080 tomcat:8.0

$ curl localhost:8888
curl: (7) Failed to connect to localhost port 8888: Connection refused

當我以默認橋接網絡模式啟動它時,一切似乎都很好。

$ sudo docker run --rm -d -p 8888:8080 tomcat:8.0
$ curl localhost:8888
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/8.0.53</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />

該問題似乎與Tomcat映像有關。 同樣的原理適用於Nginx圖像。 您可以查看它: https : //docs.docker.com/network/network-tutorial-host/#goal ,我嘗試過。 它適用於Nginx圖像。

我找不到與此相關的任何文檔。 您知道Tomcat容器不能與主機網絡一起工作的原因嗎?

如果您以host網絡模式運行,則端口映射不會執行任何操作。 您的意思是“使用主機的網絡堆棧運行此容器”。 因此,您需要在運行tomcat的端口上連接到tomcat,而無需轉發。 在上面的示例中,該8080

$ sudo docker run --rm -d --network host tomcat:8.0
$ curl localhost:8080
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/8.0.53</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />

nginx示例工作正常,因為它們正在連接到端口80而這正是nginx在其上運行的端口。 在該示例中,他們沒有進行任何轉發。

暫無
暫無

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

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