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

having issues while connecting tomcat to mysql in a docker container?

我通过 docker-swarm 创建了 2 个 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.can 访问时收到 mysql 连接被拒绝的异常 有人帮我解决这个问题吗?

您不想使用 mysql 容器的 IP 地址,因为在下次启动新的 mysql 容器或您碰巧对其进行缩放时,该地址必然会发生变化(可能不过 mysql 并不容易)。理想情况下,您应该使用容器的名称。当你调出容器时,你会使用 docker run,确保添加 --name mysql 然后使用 mysql 而不是 ip 地址。