我部署了一個docker容器,該容器具有從openjdk7基本映像構建的簡單Java-JDBC代碼。無法連接到我的主機上從docker容器運行的mySql
現在我有我的本地計算機在端口3306上運行mysql
。現在我怎樣才能連接到從docker容器運行在主機上的mysql?
我一直在使用部署容器:
docker run -it -p 25000:27000 -p 3307:3306 94e56cffbdf7 bash
但在容器中,當我嘗試運行javaCode,我得到這樣一個錯誤:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
如果我嘗試連接到MySQL通過使用命令:
mysql -h 10.10.35.129 -p 3307 -u root -p
其中10.01.35.129是我的主機的ip。
我得到錯誤:
bash: mysql: command not found
做參考,我還附上我想搬運工容器內運行的Java代碼:
package jdbcCodes;
import java.sql.*;
public class MySqlJDBC {
public static void main(String[] args) {
try{
Class.forName("com.mysql.jdbc.Driver");
// here testEmp is DB name and root is user and xxx os password
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3307/testEmp","root","xxx");
Statement stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("select * from tempEntry");
while(rs.next()){
System.out.println(rs.getInt(1)+" "+rs.getString(2));
}
con.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
Repaeating我的問題:
如何瞬移到從docker contaimner運行在主機上的mysql?
[從Docker容器內部,如何連接到本機的本地主機?](http://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container如何做我連接到本地主機) – Berger