如何在Docker上使用OVS Bridge进行联网?

OVS桥接器或Open vSwitch桥接器被用作Linux中本机桥接器的替代。它支持物理交换机中的大多数功能,同时还支持单个网桥上的多个vLAN。它也被广泛用于Docker网络中,因为与本地网桥相比,它被证明对多主机网络很有用,并且提供了更安全的通信。

在本文中,我们将讨论如何使用Open vSwitch网桥(OVS)执行docker网络。我们将讨论各种命令,这些命令将帮助您安装OVS和Docker的OVS实用程序。然后,我们将尝试创建一个OVS桥,然后将两个docker容器连接到该桥。最后,我们将尝试使用ping命令测试连接。

安装OVS桥

要在Linux系统中安装Open vSwitch网桥,可以使用以下apt-get命令。

sudo apt−get −y install openvswitch−switch

为Docker安装OVS实用程序

要安装OVS docker实用程序,可以使用以下命令-

移至当前用户的bin目录。

sudo cd /usr/bin

使用以下wget命令下载openvswitch存储库-

sudo cd /usr/bin

使用以下命令更改访问权限。rwx权限可确保所有者,组和用户具有rwx集,从而赋予他们读取,写入和执行权限。

sudo chmod a+rwx ovs−docker

创建一个OVS桥

现在让我们创建,添加和配置新的OVS桥,以使不同网络上的Docker容器相互连接。

sudo ovs−vsctl add−br ovs−br1

ovs-vsctl命令用于查询和配置OVS交换机。它创建并添加了一个ovs桥。

您可以使用以下命令显示ovs桥。

sudo ovs−vsctl show

将容器连接到桥

我们可以使用两种不同的模式将容器与网桥连接-NAT和网桥。

在NAT模式下,网桥实际上是一个虚拟接口。docker容器将具有内部ip地址和网络地址转换规则,这些规则适用于与外部世界通信。另一方面,如果它们以桥接模式连接,则桥接将是真正的网络适配器。

我们将尝试使用桥接模式连接它们。

首先,我们必须将内部IP地址配置到OVS桥接器上,然后,可以使用以下命令-

sudo ifconfig ovs−br1 173.16.1.1 netmask 255.255.255.0 up

现在,我们将创建两个与ubuntu映像关联的不同docker容器。

sudo docker run −it −−name myContainer1 ubuntu bash
sudo docker run −it −−name myContainer2 ubuntu bash

现在,我们将尝试使用以下命令将容器与OVS桥连接。

sudo ovs−docker add−port ovs−br1 eth1 myContainer1 −−ipaddress=173.16.1.2/24
sudo ovs−docker add−port ovs−br1 eth1 myContainer2 −−ipaddress=173.16.1.3/24

上面的命令将容器连接到网桥,并将IP地址关联到它们。

现在,您可以使用ping命令轻松测试连接。

总而言之,在本文中,我们已经看到了如何创建,添加和使用OVS桥将两个容器连接到桥。