我有两个通过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连接拒绝异常。有人帮我这个吗?
答案 0 :(得分:1)
你不想使用mysql容器的ip地址,因为下次启动一个新的mysql容器或者你碰巧扩展它时必然会改变它(虽然可能不容易使用mysql)。理想情况下应该使用的是容器的名称。当您启动容器时,您将使用docker run
,请务必添加--name mysql
,然后使用mysql
代替IP地址。