web-dev-qa-db-ja.com

Docker LXCコンテナーのMACアドレスを設定するにはどうすればよいですか?

Dockerコンテナを実行すると、ランダムなMACアドレスが使用されていることがわかります。

eth0      Link encap:Ethernet  HWaddr de:6f:de:74:bd:d9

コンテナ実行に特定のMACアドレスを設定するにはどうすればよいですか?

同じMACアドレスで複数のコンテナを同時に実行することはできますか?これらのコンテナは、外部ネットワークにアクセスする必要はなく、相互に通信する必要もありません。

16

MACアドレスは、LXC構成オプションlxc.network.hwaddrを使用して設定されます。 Docker0.6.1を使用してMACアドレスを設定する方法の例を次に示します。

docker run --lxc-conf="lxc.network.hwaddr=92:20:de:b0:6b:61" my_image ifconfig

出力には、設定されたHWaddrが表示されます。

eth0      Link encap:Ethernet  HWaddr 92:20:de:b0:6b:61

更新:

以前のスイッチ-lxc-conf(ダッシュ1つ付き)は非推奨になりました。

上記のスイッチを使用するには、dockerがLXCドライバーを使用している必要があります:-e lxc

11

dockerの新しいバージョンは--mac-address=12:34:56:78:9a:bc 切り替える docker run

[email protected]:~# Sudo docker run --rm --mac-address"=12:34:de:b0:6b:61" ubuntu ifconfig | grep HWaddr
eth0      Link encap:Ethernet  HWaddr 12:34:de:b0:6b:61  

https://docs.docker.com/reference/run/ を参照してください

14
Kevin Smyth

上記の答えは私にとってはうまくいき、とても役に立ちましたが、それを機能させるにはもう少し詳細が必要でした。これは、MACアドレスのライセンスを取得するアプリがある場合に非常に役立ちます。これは私がこのトピックに関して見つけることができた唯一の投稿だったので、私はそれを拡張すると思いました。

私にとっては、動作するのにもう少し必要でした-そうでなければ、スイッチは静かに破棄されます。 ubuntu 12.04の場合:

  1. / etc/default/dockerを編集します:DOCKER_OPTS = "-dns 8.8.8.8 -e lxc"
  2. apt-get install lxc(lxc-dockerでは不十分です)
  3. docker run --lxc-conf = "lxc.network.hwaddr = 92:20:de:b0:6b:61" -t myimage
2
nikmon