当我启动新容器时,Docker会自动为它们分配一些MAC地址。如果这个作业有一个模式,我很好奇。可以更改MAC地址吗?
$ docker network inspect bridge
"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": ""
}
答案 0 :(得分:44)
Docker开始为第一个容器分配相同的mac 02:42:ac:11:00:02
,然后为每个不同的容器增加一个mac。
不确定他们为什么使用该mac地址。似乎02:42:ac
与oui数据库中的任何真实供应商都不匹配。关于这个,请看official documentation。他们说:
使用分配给容器的IP地址生成MAC地址以避免ARP冲突,使用范围从02:42:ac:11:00:00到02:42:ac:11:ff:ff
无论如何,您可以使用docker run命令上的--mac-address
参数在容器生成上设置任何mac地址。例如,执行类似docker run -ti --mac-address 00:00:00:00:00:11 ubuntu:trusty
希望它有所帮助。
答案 1 :(得分:0)
如果您查看容器接口的 MAC 地址,您可以看到最后 4 个八位字节是 IPv4 地址的十六进制表示。这部分以 02:42:
为前缀
例如:-
docker 生成的容器接口的 MAC 地址为 172.19.0.6
,IPv4 地址为 02:42:ac:13:00:06