dockerコンテナ内から、PC本体へアクセスをしたい!
Dockerで test-php-fpm
みたいな名前でphp-fpmのコンテナ立てた。
手持ちのPCから、test-php-fpmにアクセスするのは良い。
だけど、コンテナの中から手持ちのPCにアクセスするには?
今回のコンテナの中とは、 docker exec -it test-php-fpm bash
などのコマンドを入力する等で、
コンテナ内部から通信を行うというのを想定しています。
ホスト名は host.docker.internal
内部からPCに向かってアクセスするipアドレスはなんだろう。ホスト名はなんだろう。
そう考えたときに、すでにdockerには共通で使えるホスト名があります。
それが host.docker.internal
このホスト名は、コンテナ内部から手持ちのPCに対するホスト名です。
curlでチェックしてみる
curl host.docker.internal
こうすることで、アクセスを試してみましょう。
通常の手元のPCのターミナルから上記コマンドを入力しても、該当するホストがわからないと出てきます。
docker exec -it test-php-fpm bash
を入力して、コンテナ内のbashに接続したら、再度上記のコマンドを打ちましょう。
すると、データが取得出来るはずです。
何が嬉しい?
例えば、 xdebugなどでコンテナ内部から手元のPCに向かって通信をしたいときとかは、
ホスト名などがないと、通信をどこにすればいいかわかりません。
そんなときに、上記のホスト名を使いましょう。すると、手元のPCに向かって通信が出来るので、
問題なくリモート操作が可能になります。