【发布时间】:2021-10-29 10:10:41
【问题描述】:
我遇到了一个问题,即 docker 和容器化应用程序未连接到在同一 docker 网络中的容器中运行的 mysql 数据库。我的docker-compose.yml 看起来像这样:
version: '3.8'
services:
mysqlserver:
image: mysql:5.7.24
container_name: mysql_app
networks:
- somenetwork
ports:
- "5647:3306"
environment:
MYSQL_DATABASE: database
MYSQL_USER: USER
MYSQL_PASSWORD: PASS
MYSQL_ROOT_PASSWORD: PASS
command:
- --max_connections=1000
restart: always
volumes:
- persistent:/var/lib/mysql
app:
image: app/appserver:latest
container_name: app_server
networks:
- somenetwork
ports:
- "8080:8080"
depends_on:
- mysqlserver
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysqlserver:5647/database?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true
networks:
somenetwork:
name:
somenetwork_share_net
volumes:
persistent:
查看应用容器中的日志,我发现如下错误:
原因:com.mysql.cj.exceptions.CJCommunicationsException:通信链路故障 最后一个成功发送到服务器的数据包是 0 毫秒前。驱动没有收到服务器发来的任何数据包。
和
原因:java.net.ConnectException:连接被拒绝(连接被拒绝) 在 java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na]
我的docker-compose.yml 有问题吗?为什么应用容器无法连接
【问题讨论】: