Docker如何将MAC地址分配给容器?

当我启动新的容器时,Docker自动为它们分配一些MAC地址。 我很好奇这个任务是否有模式。 MAC地址可以更改吗?

$ dockernetworking检查桥

"Containers": { "3386a527aa08b37ea9232cbcace2d2458d49f44bb05a6b775fba7ddd40d8f92c": { "EndpointID": "647c12443e91faf0fd508b6edfe59c30b642abb60dfab890b4bdccee38750bc1", "MacAddress": "02:42:ac:11:00:02", "IPv4Address": "172.17.0.2/16", "IPv6Address": "" }, "94447ca479852d29aeddca75c28f7104df3c3196d7b6d83061879e339946805c": { "EndpointID": "b047d090f446ac49747d3c37d63e4307be745876db7f0ceef7b311cbba615f48", "MacAddress": "02:42:ac:11:00:03", "IPv4Address": "172.17.0.3/16", "IPv6Address": "" } 

Docker开始为第一个容器始终分配相同的mac 02:42:ac:11:00:02 ,然后为每个不同的容器增加一个mac。

不知道他们为什么使用该mac地址。 看来02:42:ac与oui数据库中的任何实际供应商都不匹配。 看看这个官方文档 。 他们说:

MAC地址是使用分配给容器的IP地址生成的,以避免ARP冲突,使用范围从02:42:ac:11:00:00到02:42:ac:11:ff:ff

无论如何,您可以在--mac-address run命令中使用--mac-address参数来设置容器生成的任何mac地址。 例如,执行像这样的docker run -ti --mac-address 00:00:00:00:00:11 ubuntu:trusty命令docker run -ti --mac-address 00:00:00:00:00:11 ubuntu:trusty

希望能帮助到你。