使用现有的iproute2网络名称空间启动Docker容器

时间:2018-11-01 21:59:06

标签: linux docker networking docker-compose

如何限制docker容器在现有iproute2-style网络名称空间中运行?

ip netns exec mynetns docker-compose up

不起作用(毫不奇怪)。

编辑评论:

$ docker network create --opt com.docker.network.bridge.name=dockerbridge dockernet
$ ip link set dockerbridge netns mynetns
RTNETLINK answers: Invalid argument

尝试将docker网络的接口分配给名称空间将不起作用。
我确实想确保没有流量泄漏-所以我想确保在启动容器之前一切都已设置好。因此,等待容器启动,然后将veth注入其netnet以链接到mynetns似乎很脆弱。
正在尝试将来自dockerbridge的流量路由到mynetns的外部ve,或从mynetns的外部veth路由。

编辑2:
对我来说,一个解决方案是使用

创建外部网络
docker network create --opt com.docker.network.bridge.name=dockerbridge dockernet

并使用iproute2工具将来自dockerbridge的所有流量路由到mynetns的外层。 我必须调整docker-compose.yml使其包含

somecontainer:
   dns: 8.8.8.8

networks:
  default:
    external:
      name: dockernet

ip route的table选项很有帮助,所以我可以为我想连接到mynetns的docker-bridge设置第二个默认网关。

0 个答案:

没有答案