通过OVS实现Docker容器通信

实验环境

  1. Ubuntu 20.04
  2. Docker 20.10.6
    在这里插入图片描述
    本机 docker 上有两个镜像,一个是通过 docker pull ubuntu 拉取下的 ubuntu 镜像,另一个是在 ubuntu 镜像的基础上添加了 ping 和 ifconfig 命令
  3. OVS 2.13.1

一、添加一个 OVS 网桥

ovs-vsctl add-br s1

在这里插入图片描述

二、创建两个 Ubuntu 容器

创建第一个 ubuntu 容器,命名 host1

docker run -it --name=host1 --net=none --privileged=true cyquen/ubuntu:v1

创建第二个 ubuntu 容器,命名 host2

docker run -it --name=host2 --net=none --privileged=true cyquen/ubuntu:v1
  • –name 为容器指定一个名称
  • –net=none 指定容器的连接类型为 none
  • –privileged=true 提升 docker 容器权限
    在这里插入图片描述在这里插入图片描述
    由于 docker 命令里设置了 --net=none ,docker 容器里只有一个环回口 lo
    在这里插入图片描述

三、使用 ovs-docker 命令实现两容器互联

为 容器 host1 和 host2 添加 eth0 网卡

ovs-docker add-port s1 eth0 host1
ovs-docker add-port s1 eth0 host2

在这里插入图片描述这时候通过 ifconfig 命令可以看到容器 host1 和 host2 多了 eth0 网卡,但是没有 ip
在这里插入图片描述
为容器 host1 和 host2 的 eth0 配置 ip
容器 host1:

ifconfig eth0 192.168.0.1/24

容器 host2:

ifconfig eth0 192.168.0.2/24

在这里插入图片描述
配置完 ip 后,通过 ping 命令 测试连通性
在这里插入图片描述
通过 ovs-ofctl show s1 可以看到 ovs 默认有一条流表项,代表流正常转发
在这里插入图片描述

参考

https://blog.csdn.net/yeya24/article/details/79829240

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值