Почему TomEE недоступен при запуске в среде Docker?

Я запускаю Tomee7 в Докере. Журнал говорит, что это началось, но я не могу видеть в браузере.

Я попытался с localhost:8080, а также с IP-докер 192.168.99.100:8080

Томи Лог:

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-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.06.0-ce

Том сервер: журнал ifconfig

$ 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 ответа

Кажется, вы запускаете Docker на виртуальной машине внутри Virtualbox. Вам нужно настроить переадресацию портов на ВМ.

Если вы открываете настройки виртуальной машины и выбираете сеть, должна быть опция для настройки переадресации портов. Вы можете гуглить скриншоты или видео, которые показывают, как именно это сделать, просто убедитесь, что вы используете правильные номера портов.

Журнал запуска Tomcat говорит: INFO - Starting ProtocolHandler [http-apr-80], Я предлагаю слушать кота 80 порт. Но вы выставляете 8080 порт.

Есть 2 способа это исправить: Выставить 80 порт (в контейнер докера). Или измените порт прослушивания tomcat.

Не могли бы вы показать мне, пожалуйста, Dockerfile? Я пытаюсь это исправить.

Другие вопросы по тегам