如何在 Docker 中使用 OVS 网桥进行网络连接?


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 和 Bridge)将容器连接到网桥。

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

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

首先,我们必须在 OVS 网桥上配置内部 IP 地址,为此,我们可以使用以下命令:

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 网桥将两个容器连接到网桥。

更新于:2020-10-27

3K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始
广告