ZimaOSユーザーが、Dockerコンテナにサーバーと同じLAN上で独自のアドレスを持たせたいと考えました。IceWhaleは、デフォルトのブリッジでもコンテナには内部アドレスが割り当てられる一方、一般にLANから見えるアドレスが必要な場合はmacvlanが必要だと説明しました。
コミュニティに投稿された長いコマンド例は、元の投稿者によって動作確認されていませんでした。その後の返信では、コピーされたスマートクォートや、1つのハイフンしか使っていないオプションが見つかり、別のユーザーもインストール済みアプリを接続できませんでした。そのため、このページでは構成と安全な計画を説明し、未検証のコマンドブロックをZimaOS向けの手順として掲載することは避けています。
ブリッジIPとLAN IPは異なる目的
| モード | コンテナの識別情報 | 一般的なアクセス方法 |
|---|---|---|
| デフォルトブリッジ | Dockerのプライベートアドレス | 公開ポートとZimaOSホストのアドレスを使用 |
| ホスト | ホストのネットワーク名前空間を共有 | コンテナ専用のアドレスはなし |
| Macvlan | 独自のLayer 2識別情報とLANアドレス | 他のLANデバイスから直接接続可能 |
ほとんどのアプリケーションでは、個別のLAN IPは必要ありません。ZimaOSホストでポートを公開するほうが簡単で、追加のLayer 2要件も避けられます。
作成前にmacvlanを計画する
- LANトラフィックに使用されている実際の親インターフェースを確認する。
- サブネットとゲートウェイを記録する。
- ルーターのDHCPプール外のアドレスを予約するか、重複しない管理範囲を作成する。
- スイッチ、Wi-Fiブリッジ、ハイパーバイザー、またはUSB NICが複数のMACアドレスを許可しているか確認する。
- アプリのCompose定義をバックアップし、ローカルコンソールにアクセスできることを確認する。
Dockerの公式macvlanドキュメントでは、Linuxカーネルの制限により、macvlanコンテナはデフォルトではホストと直接通信できないと説明されています。
ホストとコンテナの分離を想定する
LAN上の他のデバイスからはコンテナに接続できても、ZimaOS自体からは接続できない場合があります。これにより、リバースプロキシ、ヘルスチェック、ストレージサービス、またはホストからコンテナへの接続を想定するアプリが正常に動作しない可能性があります。Dockerでは、高度な方法として、コンテナを追加のブリッジネットワークに接続する方法と、ホスト上に対応するmacvlanインターフェースを作成する方法を説明しています。
コピーされたコマンドが不安定だった理由
コミュニティの投稿では、ASCIIの引用符や2つのハイフンによるオプションではなく、印刷用の引用符やenダッシュが使われていました。Windowsからコピーするとこれらの文字が保持され、シェルやDockerの解析で問題が発生します。後の参加者がこれを修正しましたが、インストール済みのZimaOSアプリを新しいネットワークで起動することは依然としてできませんでした。
また、コマンドにはネットワーク情報が固定で記述され、親インターフェースが存在することも前提にされていました。間違ったサブネットで実行すると、アドレスの競合が発生したり、アクセスが途切れたりする可能性があります。そのため、Dockerの最新の例を使用し、各値を検証したうえで適用してください。
macvlanではDHCPアドレスが自動的に割り当てられますか?
Dockerの組み込みmacvlanワークフローでは通常、各コンテナがルーターにリースを要求するのではなく、DockerのIPアドレス管理を使用します。安全なサブネットとIP範囲を定義し、その範囲内でアドレスを割り当てるか、Dockerに割り当てさせます。ルーターがそれらのアドレスを予約していない限り、ルーターのDHCPプールと重複させないでください。
元のスレッドにおけるZimaOS UIの制限
元の投稿者は、インストール済みアプリをmacvlanに接続するための動作するGUI設定を見つけられず、別のユーザーは機能リクエストとして提案しました。Composeをエクスポート、編集、再インポートすると、別途管理されるスタックが作成される可能性があり、アップグレードやApp Storeの操作が元のテンプレートと同じように機能しなくなる場合があります。
ZimaOSコンテナIPに関するFAQ
ブリッジコンテナにはすでに独自のIPがありますか?
はい。ただし通常は、第一級のLANアドレスではなく、Docker内部のアドレスです。
ZimaOSからmacvlanコンテナに直接アクセスできますか?
デフォルトではできません。Dockerでは、ホストとの分離をカーネルの制限として説明しています。
元のスレッドのコマンドをコピーすべきですか?
いいえ。印刷用文字による誤りが含まれており、ZimaOSアプリで成功するワークフローとして確認されていません。
