2013-08-28 13 views
14

Kiedy biegnę pojemnik Döcker, widzę, że używa losowy adres MAC:Jak ustawić adres MAC kontenerów Docker LXC?

eth0  Link encap:Ethernet HWaddr de:6f:de:74:bd:d9 

Jak mogę ustawić określony adres MAC do pojemnika uruchomić?

Czy będę mieć możliwość jednoczesnego uruchamiania wielu kontenerów z tym samym adresem MAC? Kontenery te nie potrzebują dostępu do sieci zewnętrznej i nie muszą ze sobą rozmawiać.

+0

Natychmiast, pierwsze pytanie, które przychodzi do głowy, to dlaczego? Czy masz gdzieś jakiś rodzaj filtrowania lub MAC konfiguracji kontroli dostępu? Jaki jest rzeczywisty cel biznesowy, który próbujesz osiągnąć? – amattn

+1

Tak, moja usługa umożliwia użytkownikom uruchamianie narzędzi z przeglądarki internetowej. Ze względów bezpieczeństwa używam tych narzędzi przy użyciu kontenera Docker. Jedno z tych narzędzi musi być powiązane z konkretnym adresem MAC, więc muszę jakoś ograniczyć losowość adresów MAC. –

Odpowiedz

11

Adres MAC ustawia się za pomocą opcji konfiguracji LXC lxc.network.hwaddr. Oto przykład jak ustawić adres MAC za pomocą Döcker 0.6.1:

docker run --lxc-conf="lxc.network.hwaddr=92:20:de:b0:6b:61" my_image ifconfig 

Na wyjściu pojawi się HWaddr który został ustawiony:

eth0  Link encap:Ethernet HWaddr 92:20:de:b0:6b:61 

Aktualizacja:

Poprzedni przełącznik -lxc-conf (z 1 kreską) został uznany za przestarzały.

Aby skorzystać z powyższej przełącznik, ty dokowanym należy za pomocą sterownika lxc: -e lxc

+0

jak użyć zmiennej -e, aby ustawić adres mac, proszę, dziękuję – Noor

2

Powyższa odpowiedź pracował dla mnie i pomógł mi bardzo, ale potrzebuje trochę więcej szczegółów, aby zmusić go do pracy. Jest to bardzo pomocne, gdy masz aplikację, która licencjonuje adres mac. Jako że był to jedyny post, jaki mogłem znaleźć na ten temat, pomyślałem, że mogę go rozwinąć.

Dla mnie wymagało to trochę więcej pracy - w przeciwnym razie przełącznik zostanie po cichu odrzucony. dla Ubuntu 12.04:

  1. edytować/etc/default/Döcker: DOCKER_OPTS = "- dns 8.8.8.8 -e lxc"
  2. apt-get install lxc (lxc-doker nie wystarczy)
  3. dokowanym prowadzony --lxc-conf = "lxc.network.hwaddr = 92: 20: dE: B0: 6b 61" -t myimage
12

nowsze wersje docker się przełącznik --mac-address=12:34:56:78:9a:bc do 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 

Zobacz https://docs.docker.com/reference/run/

+0

Opcja mac powinna być: --mac-address = "12: 34: de: b0: 6b: 61"? – zhanxw

+0

Czy masz pytania dotyczące cytatów? Są niepotrzebne, ale nieszkodliwe. –

+1

To jest poprawna odpowiedź i powinna zostać zaakceptowana jako taka. Przyjęta odpowiedź nie działa na docker 17.03. –

Powiązane problemy