将tomcat连接到docker容器中的mysql时遇到问题?

时间:2017-06-01 04:35:03

标签: mysql docker tomcat8 docker-swarm

我有两个通过docker-swarm创建的docker服务。

一个是Tomcat,另一个是mysql,我试图从tomcat连接到mysql,两者都在不同的容器中。

这是我在tomcat容器中的hibernate.cfg.xml

<property name="connection.url">
            jdbc:mysql://localhost:3306/travelbiz
        </property>
        <property name="connection.username">trvlbz_admin</property>
        <property name="connection.password">admin123</property>

这是运行的服务

root@ubuntu:/home/smadmin# docker ps
CONTAINER ID        IMAGE                                                                                                 COMMAND                  CREATED             STATUS              PORTS               NAMES
2ecb386d9bbc        cloudesire/tomcat@sha256:19e24a2290e4c3253a44d65243a54c520e9f8e0fe0edf3a5221ccc67cf9da0f8             "/run.sh"                7 hours ago         Up 7 hours          8080/tcp            apache.2.1ftla1ohbnjgax7ibk8fbh5hz
4e940f3be18d        vishnuranganathan/vishmysql@sha256:4460004d01c9a23d4c80ea2a9d7a69fc1495cbe01b48555cf28bd73a535176d1   "/usr/bin/mysqld_safe"   7 hours ago         Up 7 hours          3306/tcp            mysql.1.hjoba4bsrl8lujfumc6qru3uq

我试图通过tomcat访问时获得mysql连接拒绝异常。有人帮我这个吗?

1 个答案:

答案 0 :(得分:1)

你不想使用mysql容器的ip地址,因为下次启动一个新的mysql容器或者你碰巧扩展它时必然会改变它(虽然可能不容易使用mysql)。理想情况下应该使用的是容器的名称。当您启动容器时,您将使用docker run,请务必添加--name mysql,然后使用mysql代替IP地址。