2 つの異なるイメージに基づいて 2 つの Docker コンテナを作成しました。1 つは db 用、もう 1 つは Web サーバー用です。両方のコンテナは Mac OSX 上で実行されています。
ホスト マシンから db コンテナーにアクセスでき、同じ方法でホスト マシンから Web サーバーにアクセスすることもできます。
しかし、Web サーバーから DB 接続にアクセスするにはどうすればよいでしょうか?
私がDBコンテナを起動した方法は
docker run --name oracle-db -p 1521:1521 -p 5501:5500 oracle/database:12.1.0.2-ee
私はwlsコンテナを次のように起動しました
docker run --name oracle-wls -p 7001:7001 wls-image:latest
ホスト上のDBに接続することでアクセスできます
sqlplus scott/welcome1@//localhost:1521/ORCLCDB
ホスト上のwlsにアクセスできます
http://localhost:7001/console
ベストアンサー1
簡単です。実行中のコンテナが 2 つ以上ある場合は、次の手順を実行してください。
docker network create myNetwork
docker network connect myNetwork web1
docker network connect myNetwork web2
ここで、web1 コンテナーから web2 コンテナーに接続します (またはその逆)。
次のコマンドを実行して見つけることができる内部ネットワーク IP アドレスを使用します。
docker network inspect myNetwork
ネットワーク ブリッジによって接続されたコンテナーには、内部 IP アドレスとポートのみがアクセスできることに注意してください。
たとえば、web1 コンテナーが次のように起動されdocker run -p 80:8888 web1
(つまり、サーバーが内部的にポート 8888 で実行されている)、検査のmyNetwork
結果、web1 の IP が 172.0.0.2 であることがわかった場合、 ) を使用して web2 から web1 に接続できますcurl 172.0.0.2:8888
。