私はCentOS
コンテナを2つのネットワークインターフェイスで使用しようとしています。 Dockerのドキュメントと「googleing」を少し調べたところ、これを実現する方法を指定したthis GitHub issue commentが見つかりました。新しいNICをDockerコンテナに特定の順序で追加する
がそれに続いて、私は新しいネットワーク(デフォルトのタイプ:bridge
)作成した新しいネットワークを点検
docker network create my-network
を、私はドッカーは、サブネットワーク172.18.0.0/16
とゲートウェイ172.18.0.1/16
にそれを割り当てられていることがわかります。コンテナを作成するときに
その後、私は特に新しいネットワークアタッチ:
:コンテナ内docker create -ti --privileged --net=my-network --mac-address 08:00:AA:AA:AA:FF <imageName>
を、私は確かにインターフェイスがそのIPアドレスとMACアドレスを持つ存在であることifconfig
に確認することができます
eth0 Link encap:Ethernet HWaddr 08:00:AA:AA:AA:FF
inet addr:172.18.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::a00:aaff:feaa:aaff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:258 (258.0 b) TX bytes:258 (258.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
私はデフォルトドッカーネットワーク(bridge0
別名bridge
)にコンテナを接続するときに問題が来る:
docker network connect bridge <my-container>
今、容器内のインターフェイスを確認する:
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2941 (2.8 KiB) TX bytes:508 (508.0 b)
eth1 Link encap:Ethernet HWaddr 08:00:AA:AA:AA:FF
inet addr:172.18.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::a00:aaff:feaa:aaff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2941 (2.8 KiB) TX bytes:508 (508.0 b)
インターフェースを私の新しいネットワークのためには、その間、デフォルトのネットワーク用のインタフェースはeth0
取得、eth1
上に移動します。
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="52:54:00:85:11:33"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="25016937-1ff9-40d7-b4c3-18e08af0f98d"
:インタフェース(/etc/sysconfig/network-scripts/ifcfg-eth0
)用の設定ファイルをチェックする際にも、私はコンテナ(
08:00:AA:AA:AA:FF
)を実行しているとき、私は手動で設定1からそこは異なりMACアドレスが指定されていることがわかります
/etc/sysconfig/network-scripts
には、eth0
の設定ファイルのみがあります。eth1
(新しく追加されたインターフェイス)のファイルがありません。
私が関与している作業の要件のため、最初のインターフェイスを常に無効にする必要があり、そのMACアドレスを特別に設定する必要があります。
その他のネットワーク関連の作業はすべて、新しい接続NICを経由する必要があります。
私の質問は:私はコンテナに新しいNICを添付することができますどのように
がそうeth0
が必要なMACアドレスを持つことになります。
イメージレベルでこれを行うこともできます。