如何从Docker容器获取远程计算机的MAC地址

时间:2019-01-08 17:31:17

标签: docker networking docker-container

我正在使用python:3.6-alpine码头集装箱。
我有一个网络服务,可以找到提供的IP地址的MAC地址。 要查找给定远程计算机的mac地址,请说host=10.11.15.100我正在使用 在python3脚本下面。

import getmac 
mac_address = getmac.get_mac_address(ip=host)

当我在本地运行此脚本时,它将提供所提供主机的正确mac地址。 但是,当我在docker容器中运行它时,它会给出None
注意:-我能够从docker容器ping主机,但是无法获取mac地址。

2 个答案:

答案 0 :(得分:0)

使用此命令获取容器的MacAddress

docker container inspect -f {{.NetworkSettings.MacAddress}} container-id

答案 1 :(得分:0)

如果您能够从docker容器ping通给定的远程计算机,但无法获取表示这两者的mac地址,则

  1. MAC地址在路由表中不可用
  2. 主机网络接口在Docker容器内不可用。

对于#1情况,您可以ping通计算机,该计算机可以在路由表中添加该计算机的MAC地址。
对于#2情况,您可以将主机网络接口添加到Docker容器。

例如。 docker run --network="host" -it network_service:latest