1つのdockerホストで同じWebイメージの2つのdockerコンテナーを開始したとき。
5000
5000
は、Dockerホストの異なるポートにマップされました:49155
、49156
49155
または49156
にアクセスする必要がありますポートマッピングなしで、IPとポートx.x.x.x:5000
を使用して、外部のdockerホストからdockerコンテナーにアクセスするソリューションはありますか?
異なるドックホスト上のすべてのドッカーコンテナは、互いに直接アクセスできます。
ホストでIPエイリアスを使用してこれを実現できます。
最初に、プライマリインターフェイスとは異なるIPアドレスを持つホストに仮想インターフェイスを追加します。プライマリインターフェイスを呼び出しますeth0
IP付き10.0.0.10
、および仮想インターフェイスeth0:1
IPアドレス付き10.0.0.11
。
ifconfig eth0:1 10.0.0.11 netmask 255.255.255.0 up
ここで、コンテナを実行し、ポート5000を対応するインターフェイスにマップします。例えば:
docker run -p 10.0.0.10:5000:5000 -name container1 <someimage> <somecommand>
docker run -p 10.0.0.11:5000:5000 -name container2 <someimage> <somecommand>
これで、外部から異なるIPアドレスを使用して、ポート5000で各コンテナーにアクセスできます。