如何设置Docker LXC容器的MAC地址?

每当我运行一个docker集装箱,我看到它使用一个随机的MAC地址:

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

如何为容器运行设置特定的MAC地址?

我能够使用同一个MAC地址同时运行多个容器吗? 这些容器不需要访问外部networking,也不需要互相通话。

较新版本的--mac-address=12:34:56:78:9a:bc--mac-address=12:34:56:78:9a:bc切换到docker run

 root@kevin-VirtualBox:~# 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/

MAC地址使用LXCconfiguration选项lxc.network.hwaddr 。 这里是一个如何使用Docker 0.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个破折号)已被弃用。

要使用上述开关,您的泊坞窗必须使用LXC驱动程序: -e lxc

上面的答案为我工作,非常帮助我,但我需要更多的细节来实现它的工作。 当你有一个mac地址的许可证的应用程序,这是非常有用的。 由于这是我能find的关于这个话题的唯一的post,所以我想我可以扩展它。

对我来说,它需要更多的工作 – 否则交换机将被默默丢弃。 对于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运行–lxc-conf =“lxc.network.hwaddr = 92:20:de:b0:6b:61”-t myimage