为什么在Docker环境中运行TomEE时无法访问?
问题描述:
我在Docker中运行Tomee7。日志说它开始了,但我无法在浏览器中看到。为什么在Docker环境中运行TomEE时无法访问?
我试图与本地主机:8080,也与码头工人IP 192.168.99.100:8080
Tomee登录:
INFO - Creating Container(id=My Stateless Container)
INFO - Creating ServerService(id=cxf)
INFO - Creating ServerService(id=cxf-rs)
INFO - ** Bound Services **
INFO - NAME IP PORT
INFO - -------
INFO - Ready!
INFO - Initialization processed in 2663 ms
INFO - Importing a Tomcat Resource with id 'UserDatabase' of type 'org.apache.catalina.UserDatabase'.
INFO - Creating Resource(id=UserDatabase)
INFO - Starting service Catalina
INFO - Starting Servlet Engine: Apache Tomcat (TomEE)/8.5.3 (7.0.1)
INFO - Deploying web application directory /home/test/apache-tomee-plus-7.0.1/webapps/ROOT
INFO - ------------------------- localhost ->/
INFO - Configuring enterprise application: /home/test/apache-tomee-plus-7.0.1/webapps/ROOT
INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
INFO - Auto-creating a container for bean .Comp131040203: Container(type=MANAGED, id=Default Managed Container)
INFO - Creating Container(id=Default Managed Container)
INFO - Using directory /home/test/apache-tomee-plus-7.0.1/temp for stateful session passivation
INFO - Enterprise application "/home/test/apache-tomee-plus-7.0.1/webapps/ROOT" loaded.
INFO - Assembling app: /home/test/apache-tomee-plus-7.0.1/webapps/ROOT
INFO - Deployed Application(path=/home/test/apache-tomee-plus-7.0.1/webapps/ROOT)
INFO - At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
INFO - Deployment of web application directory /home/test/apache-tomee-plus-7.0.1/webapps/ROOT has finished in 729 ms
INFO - Starting ProtocolHandler [http-apr-80]
INFO - Starting ProtocolHandler [https-openssl-apr-8443]
INFO - Server startup in 813 ms
泊坞窗PS日志:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7727df4619b tomee7 "/bin/sh -c '${TOM..." 2 minutes ago Up 2 minutes 0.0.0.0:8080->8080/tcp tomee7
泊坞窗机:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v17.06.0-ce
tomee服务器:ifconfig日志
$ docker exec -it tomee7 /bin/bash
[email protected]:/home/test# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:828 (828.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:200 (200.0 B) TX bytes:200 (200.0 B)
答
Tomcat启动日志说:INFO - Starting ProtocolHandler [http-apr-80]
。我建议tomcat听80
端口。但是你公开了8080
端口。
有两种方法可以修复它:公开80端口(进入码头集装箱)。或者更改tomcat侦听端口。
你能告诉我请Dockerfile吗?我尝试修复它。
答
看来你在虚拟机里面的虚拟机上运行Docker。您需要在VM上配置端口转发。
如果您打开虚拟机设置并选择网络,应该有一个选项来配置端口转发。您可以谷歌截图或视频显示如何做到这一点,只要确保您使用正确的端口号。
上午使用直接运行命令,像这个码头运行-it -p 8888:8888 --name tomee7 tomee7 – Ashish451