gpt4 book ai didi

networking - 配置运行 docker 容器的主机的网络接口(interface)

转载 作者:行者123 更新时间:2023-12-02 20:50:07 25 4
gpt4 key购买 nike

我有一个 Web 服务(网页),允许用户配置主机的网络接口(interface)(它基本上是一个用于配置主机 NIC 的网页)。现在我们正在考虑将此类服务移动到 docker 容器中。这意味着在容器内运行的 sw 应该能够修改运行 docker 的主机的网络接口(interface)的配置。

我尝试使用 --network=host 启动一个 docker,并使用 ip 命令修改接口(interface)配置,但我能(显然?!?)得到的只是权限被拒绝。

这可能是有道理的,因为从安全的角度来看这可能是一个问题,更不用说您正在更改其他可能正在运行的容器看到的网络配置,但我想知道是否有任何 docker 配置/设置可能允许我执行任务完全在 docker 容器内 (风险自负)。

我的意思是我至少可以想到一个工作区,在主机上(在 docker 容器之外)运行服务,并让 docker 和服务通过一些 IPC 机制相互通信。
这是一个解决方案,但不是最优的,因为这会破坏 docker 范式,即让你的所有东西都在容器内运行。此外,这意味着当我们用新版本的软件升级容器时,我们可能还需要升级容器外的模块。

最佳答案

尝试以特权模式运行容器以消除容器限制:

docker run --net=host --privileged ...

如果这样可以解决您的问题,您可以更换 --privileged--cap-add以及各种内核功能。想到的第一个特权是 NET_ADMIN,您可以尝试使用:
docker run --net=host --cap-add NET_ADMIN ...

this section of the docker run docs有关配置权限的更多详细信息。

关于networking - 配置运行 docker 容器的主机的网络接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40073556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com