无法从docker容器连接到localhost mysql

oknwwptz  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(573)

我已经使用docker工具箱在windows机器上安装了docker。我的windows机器上也安装了mysql,服务器在端口3306上运行(localhost-127.0.0.1-在docker机器外部),我在docker容器内运行一个sprint引导应用程序,在docker网络内名为“micra workq svc”,名为“micra network”,我希望在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>

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

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.

arknldoa

arknldoa1#

只需在管理员执行docker prune-a命令时清理容器和图像,放入database\u host=micra mysql并再次运行。

相关问题