繁体   English   中英

无法从Docker容器连接到Localhost Mysql

[英]Not able to connect to Localhost Mysql from docker container

我已经使用docker工具箱在Windows计算机上安装了docker。 我还在Windows机器上安装了mysql,并且服务器在端口3306(docker计算机外部的localhost-127.0.0.1-)上运行我正在docker容器内运行名为``micra-workq-svc''的sprint引导应用程序在名为“ micra-network”的docker网络内部,我希望在docker内部运行的应用程序连接到此本地主机。 我花了数小时在Google上搜索,但没有任何链接可以帮助我解决此问题。 我尝试使用以下命令运行mysql映像:

docker run  --name micra-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<pass> -e MYSQL_DATABASE=<db name> -e MYSQL_USER=<roo user> -e MYSQL_PASSWORD=<root password >--net=micra-network mysql:latest

我正在使用以下命令来运行我的容器:

docker run -e "SPRING_PROFILES_ACTIVE=dev" --network micra-network --env "eureka.client.enabled=true"  --env "eureka.host=micra-eureka-server"  --env "eureka.instance.preferIpAddress: true"  --env "eureka.client.serviceUrl.defaultZone=http://micra-eureka-server:8761/eureka"  --env DATABASE_HOST=127.0.0.1 --env DATABASE_PORT=3306 --env DATABASE_NAME=<db name> --env DATABASE_USER=<db user> --env DATABASE_PASSWORD=<db password> --expose 8083 -p 8083:8083 --name micra-workq-svc --link micra-mysql  -t  <my docker service image>

这是spring.boot中的application.properties样子:

spring:
 datasource:
  password: ${DATABASE_PASSWORD}
  url: jdbc:mysql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}
  username: ${DATABASE_USER}

当我运行服务时,出现以下错误:

Failed to obtain JDBC Connection; nested exception is 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.

我的Docker机器IP为192.168.99.100.

只要管理员执行此命令docker prune-a清洁容器和映像,然后将DATABASE_HOST = micra-mysql再次运行即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM