Dockerでコンテナの外へ向けてAPIを投げたいとき(コンテナ間でAPI通信をしたいとき)
今回はDockerを使っているときにコンテナ間でAPI通信をしたい場合、どのようにすれば良いのかについてご紹介していこうと思います。
Dockerでコンテナの外へ向けてAPIを投げたいとき(コンテナ間でAPI通信をしたいとき)
結論から言うと、host.docker.internalを使いましょう。
例えば、コンテナAからコンテナBに向けてAPI通信を行いたいとします。
コンテナBのポートが8080だとします。
コンテナAから設定するコンテナBのAPIのパスについて
http://localhost:8080/app2
のように書けば良いと思われるかもしれません。
しかしやってみると分かりますがこれではコンテナBのAPIを正常に叩くことができません。
なぜならこのlocalhostはホストからのlocalhostではなく、コンテナA内のlocalhostとみなされるからです。
そこでhost.docker.internalを使って次のように記述しましょう。
http://host.docker.internal:8080/app2
これで正常にコンテナAからコンテナBのAPIを叩くことができ、コンテナAとコンテナBの間でAPI通信を行うことができます。
終わりに
今回はDockerを使っているときにコンテナ間でAPI通信をしたい場合、どのようにすれば良いのかについてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません