16

每当我运行一个 docker 容器时,我看到它使用一个随机的 MAC 地址:

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

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

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

4

3 回答 3

14

较新版本的docker切换--mac-address=12:34:56:78:9a:bcdocker 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/

于 2015-07-31T14:05:55.237 回答
11

MAC 地址是使用 LXC 配置选项设置的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 个破折号)已被弃用。

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

于 2013-09-09T12:24:43.480 回答
2

上面的答案对我有用,对我帮助很大,但我需要更多细节才能让它发挥作用。当您有一个许可 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
于 2014-11-11T17:48:54.900 回答