[英]Connection refused (Connection refused) while trying to connect between docker containers
Trying to establish connection from app container to mysql container in localhost, getting connection refused exception 尝试在本地主机中建立从应用程序容器到mysql容器的连接,导致连接被拒绝异常
We are taking a docker approach to call rest api services to adopt microservice approach. 我们正在采用docker方法来调用rest api服务以采用微服务方法。 We are establishing connection between app container and mysql container While doing so we have written a docker-compose file created mysql container and application container, exposed ports for both containers. 我们正在建立应用程序容器和mysql容器之间的连接,同时我们编写了一个docker-compose文件创建的mysql容器和应用程序容器,公开了两个容器的端口。 Following is command for running docker-compose file docker-compose up. 以下是用于运行docker-compose文件docker-compose的命令。
docker-compose.yml file docker-compose.yml文件
version: '3'
services: docker-mysql: image: mysql:latest container_name: mysql-server environment: - MYSQL_ROOT_PASSWORD=abc123 - MYSQL_DATABASE=fitapp - MYSQL_PASSWORD=root ports: - 3307:3306 服务:docker-mysql:图像:mysql:最新的容器名称: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
From what I could see below will be your docker-compose.yml (have changed the password for better understanding) 从下面我可以看到的是您的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
The spring application.properties / application.yml should be like below 春天的application.properties / application.yml应该如下所示
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://docker-mysql:3301/fitapp
username: root
password: pass
Check that, if you have given localhost in url it will not work as the MySql and Spring service are running in different container.It should be linked or in a same network 检查,如果您在url中指定了localhost,则它将无法正常工作,因为MySql和Spring服务在不同的容器中运行。它应该是链接的或在同一网络中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.