プライマリIPアドレスではなく一意のIPアドレスを持つようにDockerコンテナを設定するにはどうすればよいですか?
DockerコンテナはApacheまたは一部のWebサービスを実行します。これらのDockerコンテナは物理ネットワークカードとホストを共有します。これらのコンテナは、ポート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アドレスとポート間のマッピングを生成します。)
ここに示すアドレス構成は、いいえ継続的にホストを再起動すると、アドレスが失われます。これらのアドレスを構成する正確な方法は、ディストリビューションによって異なります。詳細については、配布ガイドを参照してください。