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通信をしたい場合、どのようにすれば良いのかについてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Docker

Posted by ちこ