デフォルトではない一意のIPアドレスを持つようにDockerコンテナーを構成するにはどうすればよいですか?
Dockerコンテナーは、ApacheまたはWebサービスを実行します。これらのDockerコンテナーは、1つの物理NICを持つ1つのホストを共有します。これらのコンテナは、ポート80を介した呼び出しで一意のIPアドレスによって識別可能である必要があります。ワークステーションはHTTPを使用してファイルをダウンロードします。
DockerホストでダミーのIPアドレスを作成してみました。しかし、これによりサーバーへのネットワークが切断されました。
Dockerオーバーレイをインストールしようとしましたが、ワークステーションがコンテナへのHTTPリクエストを使用できるようになるとは思いません。 Dockerオーバーレイは、コンテナー間の接続に向けられているようです。
インターロックの使用を検討しましたが、Swarmは使用しません。
ここで最も簡単な解決策は、ホストにアドレスを追加してから、1つのコンテナを各アドレスにバインドすることです。たとえば、ホストが192.168.1.20であるとすると、次のようにアドレスを追加できます。
ip addr add 192.168.1.21/32 dev eth0
ip addr add 192.168.1.22/32 dev eth0
ip addr add 192.168.1.23/32 dev eth0
次に、コンテナーを開始するときに、コンテナーのポート80を特定のホストアドレスのポート80に次のように公開します。
docker run -p 192.168.1.21:80:80 mywebimage
(これはコンテナーのIPアドレスを変更しません。指定されたIPアドレスとポートとコンテナーの内部IPアドレスとポートの間のマップを作成します。)
ここに示すアドレス構成はnotになることに注意してください。ホストを再起動すると、アドレスが失われます。このようなアドレスを永続的に構成する方法は、配布ごとに異なります。詳細については、ディストリビューションのドキュメントを参照してください。