0

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

我创建了一个网络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获取 IPAddresses 并尝试更改我的配置文件以直接指向它。但仍然不确定为什么它不会连接。

4

1 回答 1

1

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

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

于 2017-09-05T05:08:15.843 回答