【发布时间】:2018-07-17 03:37:51
【问题描述】:
我的目标是使用在最新的 docker 容器(17.12 版)中运行的应用程序来管理主机上的网络命名空间。
我尝试使用以下选项启动 docker 容器:
docker run -ti --entrypoint=/bin/bash --network=host --pid=host --
privileged --cap-add ALL -v /run:/run debian
这允许我在主机上创建一个网络命名空间,但是一旦容器被销毁,从容器内创建的网络命名空间仍然可见,但我无法使用它们。
container # ip netns add test
container # exit
host # ip netns
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
test
testhost
host # ip netns exec test ip addr
setting the network namespace "test" failed: Invalid argument
知道如何启动 docker 容器,以便在其中运行的应用程序可以管理主机网络命名空间吗?
【问题讨论】:
-
您是否尝试将
/etc/也安装为卷? -
@DerekBrown 刚刚尝试过,没有任何变化。为什么您认为从主机安装 /etc 会有所帮助?我跟踪了“ip netns”命令,他们只尝试打开容器或主机中不存在的 /etc/netns。
标签: linux docker networking namespaces