Как установить MAC-адрес для контейнеров Docker LXC?
Всякий раз, когда я запускаю контейнер докера, я вижу, что он использует произвольный MAC-адрес:
eth0 Link encap:Ethernet HWaddr de:6f:de:74:bd:d9
Как установить определенный MAC-адрес для запуска контейнера?
Могу ли я иметь несколько контейнеров, работающих одновременно с одним и тем же MAC-адресом? Этим контейнерам не требуется доступ к внешней сети и не нужно разговаривать друг с другом.
Ответы
Ответ 1
MAC-адрес устанавливается с использованием опции конфигурации LXC lxc.network.hwaddr
.
Ниже приведен пример настройки MAC-адреса с помощью Docker 0.6.1:
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
Update:
Предыдущий переключатель -lxc-conf
(с 1 тире) устарел.
Чтобы использовать вышеуказанный переключатель, вы должны использовать драйвер DXC: -e lxc
Ответ 2
В новых версиях docker
установите переключатель --mac-address=12:34:56:78:9a:bc
на docker run
.
[email protected]:~# 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/
Ответ 3
Вышеупомянутый ответ сработал у меня и очень помог мне, но мне нужно было немного больше деталей, чтобы заставить его работать.
Это очень полезно, когда у вас есть приложение, которое имеет лицензии на mac-адрес.
Поскольку это был единственный пост, который я смог найти по этой теме, я подумал, что я расширяю его.
Для меня это потребовало немного больше работы, иначе переключатель будет отключен.
Для ubuntu 12.04:
- изменить /etc/default/docker: DOCKER_OPTS = "- dns 8.8.8.8 -e lxc"
- apt-get install lxc (lxc-docker недостаточно)
- docker run --lxc-conf = "lxc.network.hwaddr = 92: 20: de: b0: 6b: 61" -t myimage