如何将多个Dockers连接到单个主机中的不同桥接器? [英] How to connect multiple Dockers to different bridges in a single host machine?

查看:176
本文介绍了如何将多个Dockers连接到单个主机中的不同桥接器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以将多个Dockers(在我的情况下,同一Docker的多个实例)连接到单个主机中的不同桥接器?

Is it possible to connect multiple Dockers (in my case, multiple instances of the same docker) each to different bridge in a single host machine?

第三方解决方案像管道建议首先寻找本地的方法。

3rd party solutions like pipework recommends first looking for "native" ways.

类似的东西:

当我启动2个实例时,第一次使用默认docker0桥,而第二个被指示使用br1(不同的IP范围):

When I start 2 instance, the 1st use by default docker0 bridge, while the 2nd is instructed to use br1 (different IP range) :

sudo docker run -t -i me/tester:latest /bin/bash
sudo docker --bridge=br1 run -t -i me/tester:latest /bin/bash

导致来自Doker0的IP范围相同:

results in both having the same IP range from Doker0:

root@2a259a88d9c8:/# ip a
...
73: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 86:d7:cc:c8:b7:e8 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.32/16 scope global eth0

-

root@0b849a5398af:/# ip a
...
79: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 26:84:ad:6c:70:6b brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.34/16 scope global eth0
       valid_lft forever preferred_lft forever


推荐答案

这是如何使用新的本机码头网络完成的:

This is how it is done using the new native docker networking:

使用预定义的子网创建码头网络(linux桥)

docker network create --subnet=192.168.10.0/24 net1
docker network create --subnet=192.168.20.0/24 net2
docker network create --subnet=192.168.30.0/24 net3

创建的网络对应于linux网桥

brctl show

创建点击界面

sudo ip tuntap add dev tap1 mode tap
sudo ip tuntap add dev tap2 mode tap
sudo ip tuntap add dev tap3 mode tap

并加入到桥梁

sudo brctl addif br-a24f2eb2e054 tap1
sudo brctl addif br-d28c0759c37a tap2
sudo brctl addif br-d9512f62e471 tap3

启动您的容器

sudo docker run -itd --name=c1  phusion/baseimage
sudo docker run -itd --name=c2  phusion/baseimage
sudo docker run -itd --name=c3  phusion/baseimage

连接容器到网络

Connecting containers to network

docker network connect net1 c1
docker network connect net2 c2
docker network connect net3 c3

验证每个容器是否连接到其网络

docker network inspect net1

docker network inspect net2

docker network inspect net3

已连接的容器从相应的网络子网获取他们的IP

docker exec c1 ip a s eth1

docker exec c2 ip a s eth1

docker exec c3 ip a s eth1

断开网络连接容器

docker network disconnect net1 c1
docker network disconnect net2 c2
docker network disconnect net3 c3

这篇关于如何将多个Dockers连接到单个主机中的不同桥接器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆