为什么在Docker环境中运行时无法访问TomEE?

时间:2017-09-04 07:01:29

标签: docker tomee tomee-7

我在Docker中运行Tomee7。 Log说它已经开始但我无法在浏览器中看到。

我尝试使用localhost:8080以及docker ip 192.168.99.100:8080

Tomee Log:

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

docker ps log:

$ 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机器:

$ 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 log

$ docker exec -it tomee7 /bin/bash
root@e7727df4619b:/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)

2 个答案:

答案 0 :(得分:0)

Tomcat启动日志说:INFO - Starting ProtocolHandler [http-apr-80]。我建议tomcat监听80端口。但是您公开了8080端口。

有两种方法可以修复它:暴露80端口(进入docker容器)。或者更改tomcat监听端口。

你能告诉我Dockerfile吗?我试着解决它。

答案 1 :(得分:0)

您似乎在Virtualbox内的VM上运行Docker。您需要在VM上配置端口转发。

如果您打开VM设置并选择网络,则应该有一个配置端口转发的选项。您可以使用谷歌截图或视频来准确显示如何执行此操作,只需确保您使用正确的端口号。