別のコンテナからDockerコンテナにアクセスする 質問する

別のコンテナからDockerコンテナにアクセスする 質問する

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

おすすめ記事