我正在尝试连接到在docker容器中运行在tomcat8上的Web应用程序。
我可以在容器lynx http://localhost:8080/myapp
内访问它,但当我尝试从主机访问它时,我只能获得HTTP request sent; waiting for response.
我在Dockerfile中公开了端口8080,我使用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" <me@my_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
为什么我可以从容器内访问它而不是从主机访问它?
由于
答案 0 :(得分:0)
你的docker run命令是什么样的?你仍然需要做-p 8080:8080。在dockerfile中,只显示链接容器而不是主机vm。
答案 1 :(得分:0)
我现在可以从主机访问tomcat8服务器了。问题出在这里:
sudo tomcat8 start && sudo tail -f /var/log/tomcat8/catalina.out
Tomcat8必须作为服务启动:
sudo service tomcat8 start && sudo tail -f /var/log/tomcat8/catalina.out
答案 2 :(得分:0)
将命令命令发送到查找docker-machine的IP 地址
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.10.3
输出将类似于:
<head>
...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
...
</head>
<body>
<div class="modal-body">
<form role="form" action="<?=admin_url('admin-ajax.php')?>" method="post" id="register-form" autocomplete="off">
<div>
<h4>User Info</h4>
<span class="btn reg-org pull-right">
<button type="button" class="btn btn-default" data-toggle="collapse" data-target="#user_info">
<span class="caret"></span>
</button>
</span>
<div id="user_info" class="collapse">
//FORM CONTENT
</div>
</div>
<hr>
<div>
<h4>Further Info</h4>
<span class="btn reg-org pull-right">
<button type="button" class="btn btn-default" data-toggle="collapse" data-target="#further_info">
<span class="caret"></span>
</button>
</span>
<div id="further_info" class="collapse">
//FORM CONTENT
</div>
</div>
</form>
</div>
</body>
现在从主机运行您的应用程序: http://192.168.99.100:8080/myapp