プライマリIPアドレスではなく一意のIPアドレスを持つようにDockerコンテナを設定するにはどうすればよいですか?

プライマリIPアドレスではなく一意のIPアドレスを持つようにDockerコンテナを設定するにはどうすればよいですか?

プライマリ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アドレスとポート間のマッピングを生成します。)

ここに示すアドレス構成は、いいえ継続的にホストを再起動すると、アドレスが失われます。これらのアドレスを構成する正確な方法は、ディストリビューションによって異なります。詳細については、配布ガイドを参照してください。

おすすめ記事