首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >App容器无法连接到同一个网络中的mysql容器。

App容器无法连接到同一个网络中的mysql容器。
EN

Stack Overflow用户
提问于 2021-10-29 10:10:41
回答 1查看 245关注 0票数 0

我有一个问题,码头和容器应用程序没有连接到mysql数据库运行在一个容器内的同一个码头网络。我的docker-compose.yml看起来是这样的:

代码语言:javascript
复制
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.base/java.net.PlainSocketImpl.socketConnect(Native方法中由: java.net.ConnectException:连接拒绝(连接拒绝)引起的

)

我的docker-compose.yml有什么问题吗?为什么应用程序容器不能连接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-29 10:16:57

您必须使用容器端3303上的公开端口,而不是公共5647

只要试一试

代码语言:javascript
复制
SPRING_DATASOURCE_URL: jdbc:mysql://mysqlserver:3306/database?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true

本地网络中的端口保持原来公开的端口。在端口部分,您只需定义主机上的公共端口。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69767161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档