当前位置:首页>开发>正文

除了默认的docker0网桥,启动Docker服务怎么指定使用的网桥

2024-08-02 03:08:22 互联网 未知 开发

除了默认的docker0网桥,启动Docker服务怎么指定使用的网桥?

除了默认的docker0网桥,启动Docker服务怎么指定使用的网桥

你好,使用方法如下:

首先我们让ovsdb-server监听一个TCP端口:

ovs-appctl-tovsdb-serverovsdb-server/add-remoteptcp:6640

接下来,启动ovn-northd后台进程。这个进程负责将来自Docker的网络信息(存储在OVN_Northbound数据库中)转换成逻辑流存储于OVN_Southbound数据库。

/usr/share/openvswitch/scripts/ovn-ctlstart_northd

2、一次性配置

在每一个你打算创建容器的主机上,你需要运行以下的命令(如果你的OVS数据库被清空,你需要再次运行这个命令。除此之外,重复运行这个命令都是没有任何影响的)。

其他的主机可以通过$LOCAL_IP地址来访问到这个主机,它就相当于本地通道的端点。

$ENCAP_TYPE是指用户想使用的通道的类型。它可以是”geneve“或者”stt“。(注意,你的内核需要支持以上两个类型,用户可以通过运行以下命令来检测内核是否支持以上类型:"llsmod|grep$ENCAP_TYPE")。

ovs-vsctlsetOpen_vSwitch.external_ids:ovn-remote="tcp:$CENTRAL_IP:6640"external_ids:ovn-encap-ip=$LOCAL_IPexternal_ids:ovn-encap-type="$ENCAP_TYPE"

最后,启动ovn-controller(你需要在每一次启动时运行以下命令):

/usr/share/openvswitch/scripts/ovn-ctlstart_controller

3、启动OpenvSwitch网络驱动

在默认情况下,Docker使用Linux网桥,但它支持外扩展。为了替换Linux网桥,我们需要先启动OpenvSwitch驱动。

OpenvSwitch驱动使用了PythonFlask模块来监听Docker的网络API请求。因此,用户需要先安装Python的Flask模块。

easy_install-UpippipinstallFlask

在每一个你想要创建容器的主机上启动OpenvSwitch驱动:

ovn-docker-overlay-driver--detach

Docker内部包含了一些模块,这些模块拥有类似于OVN的逻辑交换机和逻辑端口的概念。请读者仔细阅读Docker的文档来查找相关的命令。这里我们给出了一些案例:

1)创建用户自己的逻辑交换机

下面的命令创建了一个名为”foo“的逻辑交换机,它的网段为”192.168.1.0/24”:

NID=`dockernetworkcreate-dopenvswitch--subnet=192.168.1.0/24foo`

2)显示已有逻辑交换机

dockernetworkls

你也可以通过以下命令从OVN的northbound数据库中查找到这个逻辑交换机:

ovn-nbctl--db=tcp:$CENTRAL_IP:6640lswitch-list

3)Docker创建逻辑端口,并且将这个端口附加到逻辑网络上

比如说,将一个逻辑端口添加到容器busybox的“foo”网络上:

dockerrun-itd--net=foo--name=busyboxbusybox

4)显示所有的逻辑端口

Docker现在并没有一个CLI命令来罗列所有的逻辑端口,但是你可以从OVN的数据库中找到它们:

ovn-nbctl--db=tcp:$CENTRAL_IP:6640lport-list$NID

5)用户也可以创建一个逻辑端口,并将它添加到一个运行中的容器上:

dockernetworkcreate-dopenvswitch--subnet=192.168.2.0/24bardockernetworkconnectbarbusybox

用户可以删除逻辑端口,或者将它们从运行容器上分离出来:

dockernetworkdisconnectbarbusybox

6)用户也可以删除逻辑交换机:

dockernetworkrmbar

随便看看