如何设置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
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:
- 编辑/ etc / default / docker:DOCKER_OPTS =“ – dns 8.8.8.8 -e lxc”
- apt-get install lxc(lxc-docker是不够的)
- docker运行–lxc-conf =“lxc.network.hwaddr = 92:20:de:b0:6b:61”-t myimage