docker 没有 link 网络无法工作

docker network not working without link

我有一个 mysql 容器和一个需要连接到 mysql 容器的 service 容器。

我用 docker network create chrisbolton

创建了一个网络

我正在用

旋转 mysql 容器

docker run --name chrisbolton-mysql -v /Users/Bolton/chrisbolton-data:/var/lib/mysql --network chrisbolton -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=chrisbolton -d mysql:latest

我正在用

旋转 service 容器

docker run -p 8080:8080 --name chrisbolton-service --network chrisbolton --link chrisbolton-mysql:mysql -d chrisbolton-service

但是,我知道 link 已被弃用,我需要改为仅使用 networks。但是如果我在这里删除 link 两个容器无法通信。

我正在使用以下配置连接到 mysql

#disbale Spring banner
spring.main.banner-mode=off

spring.datasource.url=jdbc:mysql://mysql:3306/chrisbolton
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

我已经完成 docker network inspect chrisbolton 来获取 IP 地址并尝试更改我的配置文件以直接指向它。但仍然不确定为什么它无法连接。

datasource.url不正确,您应该指定要连接的容器的名称。有比使用服务名称更好的选择。您可以使用 aliases or hostname.

虽然在这种情况下,正如您在评论中指出的那样,datasource.url 需要 jdbc:mysql://chrisbolton-mysql:3306/chrisbolton