web-dev-qa-db-ja.com

ESXで実行されているdhcpサーバーからDHCPIPを取得するためのDockerコンテナーを構成する方法

私のホストはSLES12ですVM ESXサーバーで実行されています。VMホストには、ESXで実行されているDHCPサーバーからDHCPIPを取得するインターフェイスがあります。

Dockerコンテナ(Dockerイメージ:openSUSE)でNFSサーバーを実行しているため、外部アクセスが必要です。 コンテナがESXで実行されているdhcpサーバーからdhcp IPを取得するようにします(ホストVMが取得するのと同じように)。

pipework を試しましたが、動作しませんでした。これが私がしたことです:

  1. ESXでプロミスキャスモードを有効にしました。新しいブリッジ(br1)を作成し、
    ホストインターフェースeth0に接続しました。

  2. パイプワークを使用して、このコマンドpipework br1 $CONTAINERID 0/0を使用してIPアドレスを持つDockerコンテナーに新しいインターフェース(eth1)を追加しました

  3. コマンドpipework eth1 $CONTAINERID dhclientを使用して、コンテナーの新しいインターフェイス(eth1)にDHCPIPを割り当てようとした後

    しかし、以下のエラーが発生しました:RTNETLINK answers: File exists

  4. これを解決するために、コンテナー内のeth1デバイスをフラッシュし、コマンドを再度実行しました。 Dockerデーモンがクラッシュしたことを確認しました。 Dockerバージョン:1.12.3(クライアントとサーバーの両方)。

ここで私が欠けているものを教えてください。コンテナのインターフェイスで、ESXで実行されているDHCPサーバーからDHCPIPを取得する必要があります。

8
Anupam

Macvlanまたはipvlanドライバーを使用してDockerネットワークを作成する必要があります。次に、DHCP IPAMドライバーを使用する必要があります(IPAMはIPアドレス管理の略です)。

これは、同様のことを行う方法の説明を含む要点です: https://Gist.github.com/nerdalert/3d2b891d41e0fa8d688c

1
user801247