【问题标题】:Unable to connect to mysql in docker container from another docker container无法从另一个 docker 容器连接到 docker 容器中的 mysql
【发布时间】:2019-09-04 20:05:42
【问题描述】:

我有两个 docker 容器:mysql 和 spring boot 服务。
服务容器未连接到 mysql 容器(部署失败),但有以下异常: CommunicationsException: Communications link failure
到目前为止,我已经尝试使用 docker --link、docker 网络、使用/不使用 docker compose 运行所有内容。 我能够连接到 docker 之外的数据库容器。

连接字符串:jdbc:mysql://db:3306/somedb

docker-compose.yml

version: '3.7'
services:
  app:
    build: .
    restart: unless-stopped
    ports:
    - "80:8060"
    links:
    - db
    depends_on:
    - db

  db:
    image: "mysql:latest"
    command: --default-authentication-plugin=mysql_native_password
    environment:
    - MYSQL_DATABASE=somedb
    - MYSQL_ROOT_PASSWORD=somepassword
    ports:
    - "3306:3306"
    volumes:
    - /Users/someuser/someproject/mysql/data:/var/lib/mysql

【问题讨论】:

  • 您可能还想看看使用用户定义的网络而不是docs.docker.com/compose/networking。链接已被弃用一段时间。 docs.docker.com/network/links
  • 谢谢@Schmango,正如我在帖子中提到的,我尝试创建一个网络并在其中运行容器,但没有成功。
  • 啊,对不起。刚刚用不同的图像测试了这个 dockerfile 并且链接对我来说正常工作。您是否有机会将您的应用容器映像推送到 Dockerhub,以便我们测试您的确切设置?
  • 它在保密协议下,但非常感谢您的帮助!
  • 您可以尝试删除links 吗?不需要,因为 docker-compose 已经创建了一个 docker 网络。还要检查数据库是否正常工作,尝试在本地访问它。

标签: java mysql docker


【解决方案1】:

我之前遇到过同样的问题,我尝试通过更改 mysql 映像版本来解决。这是我的 compose yaml 文件,我可以在其中连接它。

version: "3.0"

services:
  spring-boot-container:
    build: .
    ports:
      - "8086:8086"
    links: 
      - mysql-standalone

  mysql-standalone:
    image: mysql:5.6
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: springsecurity
      MYSQL_USER: sa
      MYSQL_PASSWORD: password

【讨论】:

  • 感谢您的回复。我已经尝试更改图像版本,但它对我不起作用,同样的错误。
【解决方案2】:

所以在我的服务 dockerfile 中我说:

ADD target/app-1.0-SNAPSHOT.jar /app-service.jar
RUN sh -c 'touch /app-service.jar'

但我在更改服务配置文件后忘记重建 jar
TL;DR 我智障了

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 2022-01-04
    • 2016-01-29
    • 2019-02-24
    • 1970-01-01
    • 2020-04-25
    • 2021-04-04
    • 2021-05-09
    • 1970-01-01
    相关资源
    最近更新 更多