无法从主机访问在docker容器中运行的tomcat8服务器

时间:2014-12-10 16:32:18

标签: docker tomcat8 dockerfile

我正在尝试连接到在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

为什么我可以从容器内访问它而不是从主机访问它?

由于

3 个答案:

答案 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