Я пытаюсь подключиться к веб-приложению, работающему на tomcat8 в контейнере докера. я могу получить к нему доступ из внутри контейнера делает lynx http://localhost:8080/myapp
, но когда я пытаюсь получить к нему доступ с хоста я получаю только HTTP request sent; waiting for response.
Не удается получить доступ к серверу tomcat8, запущенному в контейнере докеров с главной машины
Я обнажая порт 8080 в Dockerfile, я использую sudo docker inspect mycontainer | grep IPAddress
, чтобы получить адрес IP- контейнера.
Команда, я использую для запуска контейнера Docker это:
sudo docker run -ti --name myapp --link mysql1:mysql1 --link rabbitmq1:rabbitmq1 -e "MYSQL_HOST=mysql1" -e "MYSQL_USER=myuser" -e "MYSQL_PASSWORD=mysqlpassword" -e "MYSQL_USERNAME=mysqlusername" -e "MYSQL_ROOT_PASSWORD=rootpassword" -e "RABBITMQ_SERVER_ADDRESS=rabbitmq1" -e "MY_WEB_ENVIRONMENT_ID=qa" -e "MY_WEB_TENANT_ID=tenant1" -p "8080:8080" -d localhost:5000/myapp:latest
Мои Dockerfile:
FROM localhost:5000/web_base:latest
MAINTAINER "Me" <[email protected]_company.com>
#Install mysql client
RUN yum -y install mysql
#Add Run shell script
ADD run.sh /home/ec2-user/run.sh
RUN chmod +x /home/ec2-user/run.sh
EXPOSE 8080
ENTRYPOINT ["/bin/bash"]
CMD ["/home/ec2-user/run.sh"]
Мой run.sh:
sudo tomcat8 start && sudo tail -f /var/log/tomcat8/catalina.out
Любые идеи, почему я может получить доступ к нему из контейнера, но не от хоста?
Thanks
Почему Sudo в run.sh? Докер выполняет вашу команду как root по умолчанию. – Bryan