博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker容器跨宿主机通信
阅读量:6465 次
发布时间:2019-06-23

本文共 2564 字,大约阅读时间需要 8 分钟。

docker容器跨宿主机通信

openvswitch安装

  安装依赖

    yum -y install make gcc openssl-devel autoconf automake rpm-build redhat-rpm-config python-devel openssl-devel kernel-devel kernel-debug-devel libtool wget

    yum install -y python-six selinux-policy-devel

  预处理    

    mkdir -p ~
/rpmbuild/SOURCES
    wget http://openvswitch.org/releases/openvswitch-2.7.0.tar.gz
    cp openvswitch-2.7.0.tar.gz ~/rpmbuild/SOURCES/
    tar -zxf openvswitch-2.7.0.tar.gz
    sed 's/openvswitch-kmod, //g' openvswitch-2.7.0/rhel/openvswitch.spec > openvswitch-2.7.0/rhel/openvswitch_no_kmod.spec
  构建rpm安装包
    rpmbuild -bb --nocheck ~/openvswitch-2.7.0/rhel/openvswitch_no_kmod.spec
  安装
    yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.7.0-1.x86_64.rpm
  
启动openvswitch服务
    setenforce 0
    systemctl start openvswitch.service
 
  
网络配置
    

 

 配置步骤

  先分配好docker的ip规划

  环境

    server1 192.168.32.232 centos7

    server2 192.168.32.245 centos7

  本次例子 server1 docker 172.17.1.0/24 255.255.255.0

            server2 docker 172.17.2.0/24 255.255.255.0

  创建网桥kbr0,删除docker0 

  ovs-vsctl add-br obr0
  ovs-vsctl add-port obr0 gre0 --
set Interface gre0 type=gre options:remote_ip=192.168.32.232  #ip为本地ip
  brctl addbr kbr0
  brctl addif kbr0 obr0
  ip link set dev docker0 down
  ip link del dev docker0
  配置kbr0网卡信息
vim /etc/sysconfig/network-scripts/ifcfg-kbr0DEVICE=kbr0ONBOOT=yesBOOTPROTO=staticIPADDR=172.17.1.1NETMASK=255.255.255.0GATEWAY=172.17.1.0USERCTL=noTYPE=BridgeIPV6INIT=no

  配置路由信息,用于转发到其他的宿主机上docker容器。

  vim /etc/sysconfig/network-scripts/route-ens192

  172.17.2.0/24 via 192.168.32.245 dev ens192

  •   表示在192.168.32.245上面的docker网段是172.17.2.0/24

  重启网卡配置  systemctl restart network

  server2的配置大致一样,只需更改一些本地ip即可

 

设置docker容器网桥

  echo 'DOCKER_OPTS="-b=kbr0"' >> /etc/sysconfig/docker

  

vim /usr/lib/systemd/system/docker.service [Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notifyEnvironmentFile=-/etc/sysconfig/dockerExecStart=/usr/bin/dockerd $DOCKER_OPTSExecReload=/bin/kill -s HUP $MAINPIDLimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinityTimeoutStartSec=0Delegate=yesKillMode=processRestart=on-failureStartLimitBurst=3StartLimitInterval=60s[Install]WantedBy=multi-user.target

 

  重启docker 

    systemctl daemon-reload

    systemctl restart docker

测试网络

  在两台主机上分别启动容器

  docker run -d --name=gggg centos /bin/bash

  

  可以看到当前网卡信息为172.17.1.2

  ping宿主机

  

  ping server2的容器

  

  ping 外网

  

 

以上实验完成。

 
 
 
 
 
 

转载于:https://www.cnblogs.com/jcici/p/9555205.html

你可能感兴趣的文章
Linux中的ls命令详细使用
查看>>
graph-tool文档(一)- 快速开始使用Graph-tool - 2.属性映射、图的IO和Price网络
查看>>
graph-tool 练习
查看>>
easyui treegrid逐步加载
查看>>
GraphicsLab Project之辉光(Glare,Glow)效果 【转】
查看>>
<转>Python: __init__.py 用法
查看>>
Linux Curl命令
查看>>
046 SparlSQL中的函数
查看>>
Zookeeper 的 Lua 绑定(二)
查看>>
[c/c++] C数据结构: 顺序表 Sequence List
查看>>
Storm API,Tutorial,Trident,Windowing BOOKS
查看>>
no such table: django_admin_log
查看>>
C++ 大数类
查看>>
-27979 LoadRunner 错误27979 找不到请求表单 Action.c(73): Error -27979: Requested form not found...
查看>>
[LeetCode] Minimum Depth of Binary Tree
查看>>
[.net 面向对象编程基础] (16) 接口
查看>>
LeetCode——Climbing Stairs
查看>>
解密中国互联网
查看>>
,net运行框架
查看>>
猜数字-暴力枚举
查看>>