📒
Notes
  • 个人笔记
  • Machine Learning
    • Tensorflow
      • Text
        • Keras构建RNN
        • 字词嵌入
        • 字词嵌入示例程序
      • Data processing
        • tf.data数据加载
      • Tensorflow Tricks
    • 循环神经网络概览
    • Pix2Pix
  • Assembly Language
    • DOS中的Debug模式
    • LOOP指令
    • 8086CPU
    • 标志位寄存器
    • 汇编指令
    • 汇编语言源程序格式
  • Linux System
    • Systemctl 服务脚本
    • Linux端口占用
    • Btrfs文件系统
    • C Socket网络编程细节问题
  • Hexo
    • Hexo下的Tag/Categories栏
    • Git备份博客
    • Hexo博客基本部署
  • Kernel
    • C语言中消息队列实现
    • Linux内核的进程调度函数
    • Linux内核模块的编译
    • Linux Kernel概述
  • Linux Software
    • Linux软件安装与配置
  • Docker
    • OVS+Docker网络构建
    • Docker分层垃圾清理
  • C
    • CMakeList语法
Powered by GitBook
On this page
  • 环境
  • CentOS 7下安装OVS
  • 将Docker容器连接到OVS
  • 1. 创建none网络的Docker容器
  • 2. 手动添加网络

Was this helpful?

  1. Docker

OVS+Docker网络构建

环境

  • CentOS 7

  • Docker

  • OpenvSwitch

CentOS 7下安装OVS

不像deb下,OVS在CentOS上需要手动编译、创建rpm安装包。

1. 安装一些中间需要的包

sudo yum install -y wget openssl-devel gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool python-twisted-core python-zope-interface PyQt4 desktop-file-utils libcap-ng-devel groff checkpolicy selinux-policy-devel 
# 上面的是参考教程中给出的,但是编译时还是缺少下面的这些依赖,可能是因为选择的OVS版本不同
sudo yum install -y gcc-c++ python-sphinx unbound unbound-devel

2. 下载OVS源码,准备进行编译。

各个版本的下载链接可以在官网找到。

mkdir -p ~/rpmbuild/SOURCES
cd ~/rpmbuild/SOURCES
wget https://www.openvswitch.org/releases/openvswitch-2.11.1.tar.gz
tar xfz openvswitch-2.11.1.tar.gz

3. 构建RPM包

rpmbuild -bb --nocheck openvswitch-2.11.1/rhel/openvswitch-fedora.spec

4. 使用yum安装本地包

sudo yum localinstall -y ~/rpmbuild/RPMS/x86_64/openvswitch-2.11.1-1.el7.x86_64.rpm

5. 启动OVS的服务

sudo systemctl start openvswitch.service
sudo systemctl is-active openvswitch
ovs-vsctl -V

将Docker容器连接到OVS

OpenvSwitch的网桥还不能直接支持Docker容器的挂载,需要手动在网桥上创建虚拟网口,并挂载到容器。

1. 创建none网络的Docker容器

Docker自带三种网络类型:bridge、host和none。启动的时候会默认分配bridge,提供网络端口。

同时新版本的Docker不允许容器内更改网络配置,除非加上privileged = true参数。

sudo docker run --net=none --privileged=true -it ubuntu:14.04 bash

不要使用后续的ubuntu版本,其中不再自带net-tools。

2. 手动添加网络

OVS为Docker提供了支持,通过ovs-docker工具进行网络的配置。

获取ovs-docker

PreviousDockerNextDocker分层垃圾清理

Last updated 5 years ago

Was this helpful?

: : :

Docker 使用 OpenvSwitch 网桥 - CSDN
Installation Openvswitch LTS in CentOS 7 - GitHub Gist
Docker容器受控于SDN网络 - 博客园