【发布时间】: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 网络。还要检查数据库是否正常工作,尝试在本地访问它。