2016-05-02 4 views

ответ

0

Это будет зависеть от вашей хост-системе, так как вы не дают никакой информации, я просто буду считать CentOS

В этом article он показывает, как вы можете получить эту информацию из/доказать на хост-системе , Итак, если вы монтируете/доказываете в своем контейнере, вы должны быть в состоянии прочитать правильный файл и вытащить свою информацию.

Это не кажется безопасным, хотя, и я рекомендую против него.

0

У вас есть много вариантов.

вариант Аnother является

docker run -it -v /var/log/:/log --name vmaccess busybox /bin/sh 
grep eth0 /log/dmesg 

[ 2.307760] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 08:00:27:98:dc:aa 
[ 2.307783] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection 
[ 4.186427] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready 
[ 8.985277] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready 
1

Может быть, вы можете подойти к этой проблеме иначе. Например. передавать информацию, необходимую от хоста к контейнеру, через переменные среды.

docker run -e HOST_MAC=$(ifconfig -a | grep -Po 'HWaddr \K.*$') image 

Это требует, чтобы вы изменили способ запуска контейнера, однако это, пожалуй, самый чистый способ его решения.

0

Другим способом является использование --net=host при запуске контейнера.

$# ifconfig -a | grep -Po 'HWaddr \K.*$'

00:00:00:00:00:00 
9c:b6:54:1d:80:4b 
48:5a:b6:67:9e:11 

$# docker run --net=host -it ubuntu:14.04 bash

$# ifconfig -a | grep -Po 'HWaddr \K.*$'

00:00:00:00:00:00 
9c:b6:54:1d:80:4b 
48:5a:b6:67:9e:11