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と、2 つのコンテナーが通信できなくなります。

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

IPAddresses を取得するためにa を実行docker network inspect chrisboltonし、それを直接指すように構成ファイルを変更しようとしました。しかし、なぜ接続されないのかはまだわかりません。

4

1 に答える 1

1

datasource.url接続先のコンテナーの名前を指定する必要があります。サービスの名前を使用するよりも優れたオプションがあります。エイリアスまたはホスト名を使用できます。

この場合、コメントで示したようにdatasource.urljdbc:mysql://chrisbolton-mysql:3306/chrisbolton

于 2017-09-05T05:08:15.843 に答える