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

Vic*_*sky 16 lxc docker

每当我运行docker容器时,我发现它使用随机MAC地址:

eth0      Link encap:Ethernet  HWaddr de:6f:de:74:bd:d9
Run Code Online (Sandbox Code Playgroud)

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

我可以使用相同的MAC地址同时运行多个容器吗?这些容器不需要访问外部网络,也不需要相互通信.

Kev*_*yth 14

新版本的docker需要--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  
Run Code Online (Sandbox Code Playgroud)

请参阅https://docs.docker.com/reference/run/


Vic*_*sky 11

使用LXC配置选项设置MAC地址lxc.network.hwaddr.以下是使用Docker 0.6.1设置MAC地址的示例:

docker run --lxc-conf="lxc.network.hwaddr=92:20:de:b0:6b:61" my_image ifconfig
Run Code Online (Sandbox Code Playgroud)

在输出中,您将看到已设置的HWaddr:

eth0      Link encap:Ethernet  HWaddr 92:20:de:b0:6b:61
Run Code Online (Sandbox Code Playgroud)

更新:

-lxc-conf不推荐使用上一个开关(带1个破折号).

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