Dockerコンテナとホストマシンの間でどのように通信するか。
Dockerコンテナとホストマシンは、ネットワークを通じて互いにアクセスできます。
- コンテナがホストマシンにアクセスする
- ホストマシンのIPアドレスを使用して、ホストマシン上のサービスにアクセスします。コンテナは、ホストマシン上で実行されているデータベースやその他のサービスに、ホストマシンのIPアドレスを使ってアクセスすることができます。
- Dockerは、特殊なDNSリゾルバを提供しており、ホストマシンのホスト名を使用してホストマシン上のサービスにアクセスすることができます。ホストマシンのホスト名はhost.docker.internalです。
- ホストマシンがコンテナにアクセスします。
- コンテナには、コンテナのIPアドレスを使用してアクセスすることができます。コンテナで実行されているサービスにアクセスするためには、コンテナのIPアドレスを使用することができます。
- コンテナにアクセスするためには、コンテナのポートマッピングを使用します。コンテナが実行されている場合、-pまたは–publishパラメータを使用してコンテナのポートをホストマシンにマッピングし、その後、ホストマシンのIPアドレスとマッピングされたポートを使用してコンテナにアクセスできます。
デフォルトでは、Dockerはブリッジネットワークモードを使用しており、コンテナとホストマシンは同じネットワーク内にあります。他のネットワークモード(ホストモードやカスタムモードなど)を使用すると、アクセス方法が異なる場合がありますので、注意が必要です。