无法将MySQL容器连接到Docker中的Tomcat容器
计划
我希望我的tomcat服务器能够连接到我的MySQL服务器在不同的容器中。
问题
Tomcat无法连接到MySQL
我使用了wordpress教程中有关build立与mysql容器的链接的一些细节,并创build了到MySQL的链接。
虽然tomcat和mysql的旋转起来很好,我似乎无法得到的Tomcat能够连接到MySQL,设置在我的本地机器上工作得很好。
我试图使用 – --net: "host"
,尽pipe这不适用于Tomcat,因为它会引发严重的错误。
以前的答案
我注意到这个post上的错误可能修复的负载 ,虽然我不相信任何这些会转化为我的问题,因为我相信这是一个docker问题,而不是一个主机。
泊坞窗,compose.yml
web: image: tomcat:7.0 container_name: tomcat-container ports: - "80:8080" hostname: docker-tomcat volumes: - /home/webapps:/usr/local/tomcat/webapps links: - db db: image: mysql container_name: mysql-container environment: MYSQL_ROOT_PASSWORD: Mysqlpassword1 MYSQL_DATABASE: tracker volumes: - /home/mysqlDB:/var/lib/mysql
这是Context.xml from tomcat.
我的Context.xml from tomcat.
<Context> <Resource name="jdbc/tracker" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" url="jdbc:mysql://localhost:3306/tracker?useSSL=false" driverClassName="com.mysql.jdbc.Driver" username="root" password="mysqladmin1" /> <Resource name="jdbc/jenkins" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" url="jdbc:mysql://localhost:3306/jenkins?useSSL=false" driverClassName="com.mysql.jdbc.Driver" username="root" password="mysqladmin1" /> </Context>
错误代码。
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at databaseConnections.SQLDatabaseConnection.tableExists(SQLDatabaseConnection.java:131) at databaseConnections.JiraSQLDatabaseConnection.<init>(JiraSQLDatabaseConnection.java:50)
当你将db连接为“db”时,你不能使用localhost来join你的数据库。 你应该“db”
jdbc:mysql://db:3306/tracker?useSSL=false
在你的容器中,localhostdevise你的tomcat容器,而不是你的主机。 MySQL容器有他自己的networking。
而且,如果你不喜欢“db”的名字,你可以用不同的名字来链接它
举个例子:
links: - db:container-mysql
在这种情况下,在你的tomcat容器里面,你可以使用
jdbc:mysql://container-mysql:3306/tracker?useSSL=false
- 如何从远程位置下载并在容器启动Docker上执行脚本?
- Docker-compose服务以–service-ports标志为默认值
- 附加terminal和启动docker组成?
- Docker Swarm可以升级/降低主机吗?
- 适用于AWS和Selenium网格的Docker – 拒绝连接/无路由到主机(主机不可达)
- AWS ECS上的Symfony应用程序仅具有数据容器 – 这是正确的方向吗?
- Docker-Compose的WordPress的:wp_mail()不工作
- 如何添加一个本地Maven项目作为依赖另一个Maven项目?
- 在Windows Server 2016上为Docker EE存储图像的位置,以及如何更改其位置?