从Docker Container获取Mac地址

pre*_*rem 6 docker docker-machine

是否可以从Docker容器中获取主机的MAC地址并将其写入文本文件?

Ron*_*ndo 8

docker inspect <container name or id> |grep MacAddress|tr -d ' ,"'|sort -u
Run Code Online (Sandbox Code Playgroud)

或在容器内:

ifconfig -a
Run Code Online (Sandbox Code Playgroud)

ifconfig 是 'net-tools' linux pkg 的一部分,这是进入正在运行的容器的好方法:

nsenter -t $(docker inspect --format '{{ .State.Pid }}' <container name or id> ) -m -u -i -n -p -w 
Run Code Online (Sandbox Code Playgroud)


J W*_*uck 6

使用 dockerspect取 MacAddress 并将结果重定向到文件。例如,在名为my-container 的容器上尝试此操作。这使用范围(来自 Go模板包)来查找 MacAddress:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' my-container > /path/file.txt
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请首先尝试查看可用于 my-container 的元数据:

docker inspect my-container
Run Code Online (Sandbox Code Playgroud)

在这些结果中查找 MacAddress。然后创建一个 docker 检查命令,该命令使用 docker json模板函数从该特定 json 路径中提取值。MacAddress 的路径可能会有所不同,因此这里有一个使用 Status 的示例:

docker inspect -f "{{json .State.Health.Status}}" my-container > /path/file.txt
Run Code Online (Sandbox Code Playgroud)