【问题标题】:How to fetch MAC address of remote machine from docker container如何从 docker 容器中获取远程机器的 MAC 地址
【发布时间】:2019-06-03 10:41:31
【问题描述】:

我正在使用python:3.6-alpine docker 容器。
我有一个网络服务,它可以找到提供的 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 地址。

【问题讨论】:

    标签: docker networking docker-container


    【解决方案1】:

    使用此命令获取容器的 MacAddress

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

    【讨论】:

    • 谢谢您的回复。实际上我正在从 docker 容器中寻找远程机器/局域网机器地址。假设我有网络服务,用于查找远程机器给定 IP 地址的 MAC 地址。
    【解决方案2】:

    如果您能够从 docker 容器 ping 给定的远程计算机,但无法获取 mac 地址,这意味着

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      相关资源
      最近更新 更多