web-dev-qa-db-fra.com

Comment le Docker attribue-t-il des adresses MAC aux conteneurs?

Lorsque je démarre de nouveaux conteneurs, Docker leur attribue automatiquement une adresse MAC. Je suis curieux de savoir s'il existe un modèle dans cette affectation. L'adresse MAC peut-elle être modifiée?

$ 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": ""
            }
24
monica

Docker commence à assigner toujours le même mac 02:42:ac:11:00:02 pour le premier conteneur, puis augmente de un chaque mac pour chaque conteneur différent.

Je ne sais pas pourquoi ils utilisent cette adresse mac. Il semble 02:42:ac ne correspond à aucun fournisseur réel dans les bases de données oui. Regardez la documentation officielle à ce sujet. Ils disent:

L'adresse MAC est générée à l'aide de l'adresse IP allouée au conteneur pour éviter les collisions ARP, en utilisant une plage de 02: 42: ac: 11: 00: 00 à 02: 42: ac: 11: ff: ff

Quoi qu'il en soit, vous pouvez définir n'importe quelle adresse mac lors de la génération de conteneurs à l'aide de --mac-address paramètre de la commande docker run. Par exemple, faire une commande comme celle-ci docker run -ti --mac-address 00:00:00:00:00:11 ubuntu:trusty

J'espère que ça aide.

46
OscarAkaElvis