2017-08-31 81 views
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

我旋轉了

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

然而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並試圖改變我的配置文件,以直接指向。但仍然不確定它爲什麼不能連接。

+0

'datasource.url'是不正確的,你應該指定要連接到的容器的名稱。後來你會知道有比使用服務名稱更好的選擇。 – Ayushya

+0

所以'datasource.url'需要'jdbc:mysql:// chrisbolton-mysql:3306/chrisbolton'? –

+0

是的,這應該工作。你試過了嗎? – Ayushya

回答

1

datasource.url不正確,您應該指定要連接到的容器的名稱。有比使用服務名稱更好的選項。您可以使用aliaseshostname

而在這種情況下,你在評論中指出,datasource.url必須jdbc:mysql://chrisbolton-mysql:3306/chrisbolton