Linux 使用现有iproute2网络命名空间启动docker容器
如何限制docker容器在现有iproute2样式的网络命名空间内运行Linux 使用现有iproute2网络命名空间启动docker容器,linux,docker,networking,docker-compose,Linux,Docker,Networking,Docker Compose,如何限制docker容器在现有iproute2样式的网络命名空间内运行 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 ar
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注射到它们的网络中以链接到mynetns似乎很脆弱。
我正在尝试从dockerbridge到mynetns的外部兽医的交通路线,也许这是一种方式 编辑2:
我的一个解决方案是使用
docker network create --opt com.docker.network.bridge.name=dockerbridge dockernet
并使用iproute2工具将所有流量从dockerbridge路由到mynetns的outer veth。
我必须调整docker-compose.yml以包括
somecontainer:
dns: 8.8.8.8
networks:
default:
external:
name: dockernet
ip路由的表选项很有帮助,所以我可以为我想要连接到mynetns的docker网桥设置第二个默认网关 使用网桥驱动程序创建docker网络,并将此网络的docker网络接口分配给iproute2网络命名空间。然后使用此docker网络作为it网络运行docker compose。或者创建一个tun设备并将其连接到IPRout2网络命名空间,并创建一个到docker网络接口的网桥。