配置Docker多台宿主机间的容器互联
如果要在生产和测试环境大规模采用docker技术,首先就需要解决不同物理机建的docker容器互联问题。本文介绍在centos7环境下采用openvswitch实现不同物理服务器上的docker容器互联的配置。 环境介绍: Server1:192.168.115.5/24 Server2:192.168.115.6/24 一:在Server1和Server2上分别用rpm方式安装docker并启动服务 1 2 3 4 #yumlist*docker* #yum-yinstalldocker #servicedockerstart Redirectingto/bin/systemctlstartdocker.service 二:在Server1和Server2上分别安装openvswitch 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #yum-yinstallwgetopenssl-develkernel-devel #yumgroupinstall"DevelopmentTools" #adduserovswitch #su-ovswitch $wgethttp://openvswitch.org/releases/openvswitch-2.3.0.tar.gz $tar-zxvpfopenvswitch-2.3.0.tar.gz $mkdir-p~/rpmbuild/SOURCES $sed's/openvswitch-kmod,//g'openvswitch-2.3.0/rhel/openvswitch.spec>openvswitch-2.3.0/rhel/openvswitch_no_kmod.spec $cpopenvswitch-2.3.0.tar.gzrpmbuild/SOURCES/ $rpmbuild-bb--withoutcheck~/openvswitch-2.3.0/rhel/openvswitch_no_kmod.spec $exit #yumlocalinstall/home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.3.0-1.x86_64.rpm #mkdir/etc/openvswitch #setenforce0 #systemctlstartopenvswitch.service #systemctlstatusopenvswitch.service-l 三:在Server1和Server2上建立OVSBridge并配置路由 Server1:docker容器内网ip网段172.17.1.0/24 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #cat/proc/sys/net/ipv4/ip_forward 1 #ovs-vsctladd-brobr0 #ovs-vsctladd-portobr0gre0--setInterfacegre0type=greoptions:remote_ip=192.168.115.5 #brctladdbrkbr0 #brctladdifkbr0obr0 #iplinksetdevdocker0down #iplinkdeldevdocker0 #vi/etc/sysconfig/network-scripts/ifcfg-kbr0 ONBOOT=yes BOOTPROTO=static IPADDR=172.17.1.1 NETMASK=255.255.255.0 GATEWAY=172.17.1.0 USERCTL=no TYPE=Bridge IPV6INIT=no #cat/etc/sysconfig/network-scripts/route-ens32 172.17.2.0/24via192.168.115.6devens32 #systemctlrestartnetwork.service Server2:docker容器内网ip网段172.17.2.0/24 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #cat/proc/sys/net/ipv4/ip_forward 1 #ovs-vsctladd-brobr0 #ovs-vsctladd-portobr0gre0--setInterfacegre0type=greoptions:remote_ip=192.168.115.6 #brctladdbrkbr0 #brctladdifkbr0obr0 #iplinksetdevdocker0down #iplinkdeldevdocker0 #vi/etc/sysconfig/network-scripts/ifcfg-kbr0 ONBOOT=yes BOOTPROTO=static IPADDR=172.17.2.1 NETMASK=255.255.255.0 GATEWAY=172.17.2.0 USERCTL=no TYPE=Bridge IPV6INIT=no #cat/etc/sysconfig/network-scripts/route-ens32 172.17.1.0/24via192.168.115.5devens32 #systemctlrestartnetwork.service 四:启动容器测试 Server1和Server2上修改docker启动的虚拟网卡绑定为kbr0,重启docker进程 Server1: #dockerrun-idt--nametest1registry.fjhb.cn/centos6/bin/bash Server2: #dockerrun-idt--nametest2registry.fjhb.cn/centos6/bin/bash Server1: 本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/1606239如需转载请自行联系原作者 ylw6006