Reputation: 673
When I start new containers, Docker automatically assigns some MAC address to them. I am curious if there is a pattern to this assignment. Can the MAC address be changed?
$ 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": ""
}
Upvotes: 51
Views: 67046
Reputation: 5177
The MAC addresses for Docker all begin with 02:42
. The remaining four octets represent the IP address of the container in hex. 0xAC
in hex is 172
in decimal, 0x11
is 17
, 0x00
is, well, 0
, and 0x02
is... 2
. Thus this MAC address represents a container with the IP address 172.17.0.2
. The default Docker bridge
network is always given the IP range 172.17.0.0/16
by default, thus this would be the MAC address of the virtual Ethernet adapter given to the first container you run on a fresh Docker install.
See https://maclookup.app/faq/how-do-i-identify-the-mac-address-of-a-docker-container-interface for more information.
Upvotes: 1
Reputation: 31
If you look at the MAC address of the container interface(s), you can see that the last 4 octets are the hex representation of the IPv4 address. This part is prefixed by 02:42:
For example:-
The docker generated MAC address of the container interface with IPv4 address 172.19.0.6
would be 02:42:ac:13:00:06
Upvotes: 3
Reputation: 5714
Docker start assigning always the same mac 02:42:ac:11:00:02
for the first container and then is increasing by one each mac for each different container.
Not sure why they are using that mac address. It seems 02:42:ac
doesn't match any real vendor in oui databases. Look at the official documentation about this. They say:
The MAC address is generated using the IP address allocated to the container to avoid ARP collisions, using a range from 02:42:ac:11:00:00 to 02:42:ac:11:ff:ff
Anyway, you can set any mac address on container generation using --mac-address
parameter on the docker run command. For example doing a command like this docker run -ti --mac-address 00:00:00:00:00:11 ubuntu:trusty
Hope it helps.
Upvotes: 92