gpt4 book ai didi

java - 尝试在 docker 容器之间进行连接时,连接被拒绝(连接被拒绝)

转载 作者:行者123 更新时间:2023-11-29 09:41:52 25 4
gpt4 key购买 nike

尝试在本地主机中建立从应用程序容器到 mysql 容器的连接,出现连接拒绝异常

我们正在采用docker方法来调用rest api服务以采用微服务方法。我们正在应用程序容器和 mysql 容器之间建立连接,同时我们编写了一个 docker-compose 文件,创建了 mysql 容器和应用程序容器,并为两个容器公开了端口。以下是运行 docker-compose 文件的命令docker-compose up。

docker-compose.yml 文件

version: '3'

服务: docker-mysql: 图片:mysql:最新 容器名称:mysql 服务器 环境: - MYSQL_ROOT_PASSWORD=abc123 - MYSQL_DATABASE=fitapp - MYSQL_PASSWORD=root 端口: - 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 服务在不同的容器中运行。它应该链接或在同一网络中

关于java - 尝试在 docker 容器之间进行连接时,连接被拒绝(连接被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56456533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com