我想知道如何从Docker容器中获取主机详细信息,尤其是MAC地址。
答案 0 :(得分:1)
也许你可以用不同的方式解决这个问题。例如。通过环境变量将您需要的信息从主机传递到容器。
docker run -e HOST_MAC=$(ifconfig -a | grep -Po 'HWaddr \K.*$') image
这要求您更改运行容器的方式,但这可能是解决此问题的最简洁方法。
答案 1 :(得分:0)
这将取决于您的主机系统,因为您没有提供任何信息我将会假设CentOS
在此article中,它显示了如何从主机系统上获取/证明该信息。因此,如果你装载/证明你的容器,你应该能够阅读正确的文件并提取你的信息。
这似乎并不安全,我建议不要这样做。
答案 2 :(得分:0)
你有很多选择。
另一个选项是
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
答案 3 :(得分: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