configuration运行Docker容器的主机的networking接口

我有一个Web服务(网页),允许用户configuration主机的networking接口(这基本上是一个用于configuration主机网卡的网页)。 现在我们正考虑在docker集装箱内搬运这样的服务。 这意味着在容器内部运行的sw应该能够修改docker正在运行的主机的networking接口的configuration。

我尝试使用–network = host启动docker,并使用ip命令来修改接口configuration,但是我可以(显然,!!?)获取权限被拒绝

这可能是有道理的,因为从安全的angular度来看这可能是一个问题,更不用说你正在改变其他可能运行的容器看到的networkingconfiguration,但是我想知道是否有任何dockerconfiguration/设置可能允许我完全在docker集装箱内完成任务(自担风险)。

我的意思是我至less可以考虑一个工作方式,在主机上(在docker集装箱外)运行一个服务,并且用一些IPC机械装置使docker和服务彼此交谈。 这是一个解决scheme,但并不是最优的,因为这将会使你的所有东西在容器中运行的停泊者范例被制动。 而且这意味着当我们用新版本的软件升级容器时,我们可能还需要在容器外升级模块。

尝试在特权模式下运行您的容器以删除容器限制:

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

如果解决了你的问题,你可能会用--cap-add和各种内核function取代 – --privileged 。 首先想到的特权是NET_ADMIN,你可以尝试一下:

 docker run --net=host --cap-add NET_ADMIN ... 

有关configuration权限的更多详细信息,请参阅docker run文档的这一部分 。