私はホームラボの Docker コンテナでいくつかのサービスを実行しており、それぞれに異なる IP からアクセスできるようにする必要があります。私のホスト システムは Debian "bullseye" を実行しています。
docker のドキュメントによると、macvlan
ブリッジ モードでネットワークを使用するのが自然なようで、デフォルトの方法は私の場合は正しく機能しています。
ただし、私は自分のネットワークで手動 IP を最小限にし、代わりに DHCP サーバーに他のサーバーも含めてほぼすべての IP を割り当ててもらうようにしています。もちろん、MAC アドレスに基づいて常に同じ IP をサーバーに割り当てるように DHCP を構成しますが、そのようにすると、DHCP サーバーで IP 割り当てを変更するだけで、テスト ネットワークから「ライブ」ネットワークにサーバーを簡単に移動できます。
Docker コンテナでも同様に実行できるようにしたい、つまり、ホスト ネットワーク内の DHCP から Docker コンテナに IP を割り当てたいのです。
これに関しては、dockerのドキュメントには情報が見つからず、この未解決の質問serverfault で。
私の観点からすると、2 つのルートが考えられます。
- 動的 IP を使用してホスト上にサブインターフェースを (手動で) 作成し、
host
Docker でネットワークを使用して、それを (手動で) 作成したサブインターフェースにバインドしますか? - 何らかの方法で
macvlan
ネットワークを使用します。ただし、DHCP 割り当てを受信するためにどのように構成する必要があるかはわかりません。
より実現可能な解決策を提案してもらいたい、ルート 2 を進める方法について助言してもらいたい、またはルート 1 が正しい方法であるという確証を得たいと考えています。
答え1
GitHub でこのプロジェクトをチェックしてください。DHCP で割り当てられた IP アドレスを持つホスト ブリッジ上のネットワーク用の Docker ネットワーク ドライバー