dockerでは、2つのコンテナが同じポートを共有する方法はありますか?

Dockerでは、1つのポートは1つのコンテナにしか割り当てられないため、2つのコンテナが同じポートを共有することはできません。同じポートを使用する必要がある場合は、1つのコンテナを他のコンテナのポートにマッピングするか、Dockerのネットワークモードを使用してコンテナ間の通信を実現することができます。

以下是两种実装方法です。

  1. ポートマッピング:1つのコンテナのポートを別のコンテナのポートにマッピングすることができます。たとえば、コンテナAがポート8080を使用する必要があり、コンテナBもポート8080を使用する必要がある場合、コンテナAのポートをホストマシンの1つのポート(たとえば8081)にマッピングし、それからコンテナBはホストマシンのポート8081を使用することができます。
docker run -d -p 8081:8080 containerA
docker run -d -p 8080:8080 containerB
  1. Dockerネットワークの使用:カスタムネットワークを作成し、2つのコンテナを同じネットワークに配置することで、コンテナ間でコンテナ名やIPアドレスを使用して通信できるようになります。例えば、ネットワークを作成してコンテナAとコンテナBをそのネットワークに追加します。
docker network create mynetwork
docker run -d --name containerA --network mynetwork containerA
docker run -d --name containerB --network mynetwork containerB

コンテナAとコンテナBは、コンテナ名を使用してお互いに通信できるようになりますが、同じポートを共有する必要はありません。

广告
広告は10秒後に閉じます。
bannerAds