Почему 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? Я пытаюсь это исправить.