试图在localhost中建立从app容器到mysql容器的连接,出现连接拒绝异常
我们正在采取一种docker的方法来调用rest api服务来采用微服务的方法。我们正在建立应用程序容器和mysql容器之间的连接,同时我们编写了一个docker-compose文件,创建了mysql容器和应用程序容器,为这两个容器公开了端口。下面是运行docker-compose文件docker-compose up的命令。
docker-compose.yml文件
version: '3'
服务:docker-mysql:image:mysql:最新容器_name:mysql-服务器环境:-mysql_root_password=abc123-mysql_database=fitapp-mysql_password=根端口:-3307:3306
spring-webap:
build:
dockerfile: Dockerfile
context: .
image: fitapp:1.0
depends_on:
- docker-mysql
ports:
- 8092:8080
spring-webap_1 | Caused by: java.net.ConnectException: Connection refused
从下面我可以看到的是您的docker-compose.yml(为了更好地理解,更改了密码)
version: '3'
services:
docker-mysql:
image: mysql
ports:
- "3301:3306"
environment:
- MYSQL_USER=root
- MYSQL_DATABASE=fitapp
- MYSQL_ROOT_PASSWORD=pass
- MYSQL_PASSWORD=pass
spring-webap:
build:
dockerfile: Dockerfile
context: .
image: fitapp:1.0
depends_on:
- docker-mysql
ports:
- 8092:8080
spring application.properties/application.yml应该如下所示
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://docker-mysql:3301/fitapp
username: root
password: pass
如果你在url中给出了localhost,如果MySql和spring服务在不同的容器中运行,请检查它是否有效.它应该是链接的,或者在同一个网络中