我的 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: Communications link failure 最后一個資料包成功發送到服務器是 0 毫秒前。驅動程式沒有收到來自服務器的任何資料包。
和
引起:java.net.ConnectException:在 java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na] 的連接被拒絕(連接被拒絕)
我的有什么問題docker-compose.yml嗎?為什么應用容器無法連接
uj5u.com熱心網友回復:
您必須使用容器端的公開埠,3303而不是公共埠5647。
你試一試
SPRING_DATASOURCE_URL: jdbc:mysql://mysqlserver:3306/database?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true
本地網路中的埠保持原來的暴露埠。在埠部分,您只需定義主機上的公共埠。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/342764.html
上一篇:多對一關系不會填充新物體
