无法通过docker链接访问mysql

时间:2015-12-02 00:32:41

标签: mysql docker wildfly

我使用两个docker容器,一个使用mysql,另一个使用wildfly应用程序。如果我以这种方式启动它,它工作正常:

docker run -d --name db -p 3306:3306 mysql_server 
docker run -d wildfly_server

但由于端口3306通常在我的主机中使用,我想使用docker的链接功能:

docker run -d --name db  mysql_server 
docker run -d --link db  wildfly_server

这应该有效,但事实并非如此:野生蝇现在无法以

开头
ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0348: Timeout after [300] seconds waiting for service container stability.

由于...(稍后在堆栈中)com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)

在日志文件的早些时候,我找到了一行:

INFO  [org.eclipse.persistence.connection] Connected: jdbc:mysql://db:3306/mydb

所以mysql连接似乎已连接,但之后并没有真正起作用。

docker link命令对mysql连接有什么不同?根据我的理解,它应该只用私人3306端口替换公共3306端口?

我怎么能从wildfly-server独立于wildfly测试jdbc连接?

1 个答案:

答案 0 :(得分:0)

进一步的调查表明,这与(几乎)与码头工人无关。使用docker --link db,与数据库的连接速度似乎变慢,因此数据库的初始化需要5分钟而不是2-3分钟,因此wildfly会超时。