如何连接在docker中作为容器运行的MySQL DB?

时间:2017-06-27 12:41:18

标签: java mysql docker jdbc

有些人可以告诉我如何连接我的mysql数据库,它在虚拟机上作为Docker中的容器运行吗?

我不知道,请帮助我。

我要做的是: - 我正在本地机器上编写一个java程序,现在我想与mysql建立一个jdbc连接。我的MySQL数据库作为虚拟机上的docker容器运行。

有人有任何想法。

Connection con = DriverManager.getConnection(“jdbc:mysql://10.0.2.15/ ”我应该放在什么地方“,”root“,”myrootpassword“);

我的容器的ip地址是172.17.0.2,我的guest ip是10.0.2.15。我的sql在端口3306上运行。

先谢谢

2 个答案:

答案 0 :(得分:6)

您的docker容器应该能够将其mysql端口绑定到VM上的任何端口。您可以使用-p VMPort:containerPort的{​​{1}}选项执行此操作。

https://docs.docker.com/engine/reference/run/#expose-incoming-ports

所以这个命令

docker run

将容器的3306端口发布到VM的3306端口。

此时你应该能够用

命中你的SQL
docker run -p 3306:3306 your-sql-container

我在VM上使用了您的VM地址和绑定端口。您应该将Connection con = DriverManager.getConnection("jdbc:mysql://10.0.2.15:3306/databaseName","root","myrootpassword"); 替换为数据库的实际名称。

答案 1 :(得分:1)

您需要将数据库名称放在那里。 conn = DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password"); 查看this link

此外,在连接器中添加端口也没什么坏处。