我已使用docker工具箱在Windows计算机上安装了docker。 我还在Windows机器上安装了mysql,并且服务器在端口3306上运行(本地主机-127.0.0.1-docker机器外部) 我正在名为``micra-network''的docker网络中的名称为``micra-workq-svc''的docker容器中运行sprint引导应用程序 我希望在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.
答案 0 :(得分:0)
仅在管理员执行此命令 docker prune-a 时清洁容器和映像,然后将DATABASE_HOST = micra-mysql放回并再次运行。