带有网络模式主机Can的Tomcat Docker容器';联系不到
我正在用docker版本的 Docker版本18.03.1-ce,内部版本9ee9f40 当我用网络模式主机启动Tomcat服务器时,我无法访问它带有网络模式主机Can的Tomcat Docker容器';联系不到,docker,tomcat,networking,Docker,Tomcat,Networking,我正在用docker版本的 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 --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" />
$sudo docker run-rm-d-p 8888:8080 tomcat:8.0
$curl本地主机:8888
ApacheTomcat/8.0.53
问题似乎与Tomcat映像有关。同样的原理也适用于nginx图像。您可以查看:
我试过了。它正在为nginx映像工作
我找不到任何与此相关的文档。您知道Tomcat容器不能与主机网络一起工作的原因吗?如果您在
主机
网络模式下运行,则端口映射不会起任何作用。您的意思是“使用主机的网络堆栈运行此容器”。因此,您需要在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" />
$sudo docker run--rm-d--网络主机tomcat:8.0
$curl本地主机:8080
ApacheTomcat/8.0.53
nginx示例工作正常,因为它们连接到端口
80
,而这就是运行nginx的端口。在该示例中,他们没有进行任何转发。感谢您排除此问题。我会尽快接受答案。