读取正在运行的Docker容器中的主机的ifconfig

问题描述 投票:0回答:1

我想在Docker容器运行期间读取主机的ifconfig输出,以便能够解析它并获取OpenVPN接口(tap0)IP地址并在我的应用程序中对其进行处理。

不幸的是,通过环境传播此值不是我的情况,因为IP地址可能会在运行容器时改变,并且我不想每次都重新启动应用程序容器以查看新值。

当前工作解决方案是主机上的CRON,它将IP写入共享卷中的文件中,并且容器从中读取IP-但是我正在寻找更好的解决方案,因为对我来说,这是一种解决方法。此外,还计划使用network: host创建一个新容器,该容器将看到主机的接口-可以工作,但由于涉及许多步骤,并且可能涉及安全问题,因此看起来也像是一种变通方法。

我有一个问题,是否有任何有效且更干净的方法来实现我的目标-实时读取docker容器中主机的ifconfig?

docker docker-compose docker-machine alpine
1个回答
0
投票

Docker的特定设计目标是容器不能直接访问主机的网络配置。您确定的解决方法几乎是执行这些操作的唯一方法。

[如果您尝试以某种方式修改主机的网络配置(例如,您尝试实际运行VPN),最好在Docker之外运行它。无论哪种方式,您仍然需要root权限,但是您无需禁用一堆标准限制即可执行所需的操作。

[如果您尝试提供可以访问该服务的地址,则需要使用类似环境变量的配置。即使您可以访问主机的配置,也可能不是您需要的地址:考虑一个在负载平衡器后面的云实例上运行的云环境,而外部客户端则需要负载平衡器;仅通过主机的网络配置,您就不能直接知道这些。

© www.soinside.com 2019 - 2024. All rights reserved.