![](/img/trans.png)
[英]Not able to connect to MySQL with Docker container name but can connect with localhost
[英]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.