从Docker容器

时间:2016-05-02 10:48:06

标签: docker details

我想知道如何从Docker容器中获取主机详细信息,尤其是MAC地址。

4 个答案:

答案 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