zoukankan      html  css  js  c++  java
  • 测试docker不同主机间容器互相访问

    测试服务器(centos6.5):
    192.168.16.70 网卡:eth0
    192.168.16.74 网卡:eth0
    第一步,分别在2台机器执行:

    yum install docker
    service docker start
    chkconfig docker on
    service pull redis

    centos修改默认网桥:
    vi /etc/sysconfig/docker
    other_args=-b=br0
    $ service docker restart

    如果删除网桥,可以执行:
    $ ifconfig docker0 down
    $ brctl delbr docker0

    #brctl addbr br0
    分别在Docker主机上建立虚拟网桥
    桥接本地网卡:
    # brctl addif br0 eth0
    #brctl show

    另ssh访问70和74时,绑定eth0到br0,或者更改默认网关,导致ssh连接关闭,登陆70和74所在虚拟机,在本机上操作才成功。
    下面命令在本机执行,非ssh远程执行:
    192.168.16.74上执行
    ifconfig eth 0.0.0.0
    ifconfig br0 192.168.16.74 network 255.255.255.0
    route add -net default gw 192.168.16.1 dev br0

    下面2条命令看需要执行:
    route del -net default gw 192.168.16.1 dev eth0
    route add -net 192.168.16.0/24 gw 192.168.16.1 dev br0

    70本机服务器执行类似命令


    第二步:

    70服务器执行:
    启动容器,不指定桥接网卡
    docker run --name test-redis --net=none -d redis redis-server --appendonly yes
    为容器4465c4ca0c21分配ip

    安装pipework
    [root@kuber-minion ~]# git clone https://github.com/jpetazzo/pipework
    [root@kuber-minion ~]# cd pipework/
    [root@kuber-minion pipework]# ls
    LICENSE pipework README.md
    [root@kuber-minion pipework]# cp pipework /usr/bin

    //@前部分是ip地址和掩码,后面部分是网关地址
    pipework br0 -i eth0 4465c4ca0c21 192.168.16.50/24@192.168.16.1

    如报错,Object "netns" is unknown, try "ip help" centos6.5, 请:
    centos 6.5 升级iproute
    $ vim /etc/yum.repos.d/rdo-release.repo
    -------------------------------------------------------------------------------------
    CentOS6.6 升级iproute
    [openstack-icehouse]
    name=OpenStack Icehouse Repository
    baseurl=https://repos.fedorapeople.org/repos/openstack/EOL/openstack-icehouse/epel-6/
    gpgcheck=0
    enabled=1
    -------------------------------------------------------------------------------------
    #yum update iproute


    74服务器执行(也许执行安装pipework和升级iproute):
    #docker run -it -d --net=none --name client-redis redis redis-cli
    #pipework br0 -i eth0 c3669c4eee03 192.168.16.51/24@192.168.16.1

    登陆容器:
    docker exec -it client-redis /bin/sh
    查看各自ip,并测试是否可连接远程容器redis服务端


    附:
    当执行下面语句时,开放一个本机端口,其他机器可通过6378端口访问容器内服务:
    #docker run --name some-redis -d -p 192.168.16.70:6378:6379 redis redis-server --appendonly yes

    测试中用到的一些其他命令:
    查看启动的容器
    docker ps
    查看所有容器,包括没启动的
    docker ps -a
    启动一个存在的容器
    docker start some-redis
    删除容器
    docker rm e6cafd876b67

  • 相关阅读:
    net.sf.json.JSONObject maven下载到了但是java后台一直用不了问题
    创建springboot2.1项目运行报错
    百度地图,加载顺序异步问题,用定时器解决
    大话设计模式--(1)简单工厂模式
    H5页面单点登录跳回首页 http url参数转义
    H5页面,百度地图点击事件
    批量给数据两边加上双引号和逗号
    java基础源码 (6)--ArrayListt类
    前端 移动端H5页面 DEBUG
    H5页面,华为手机打开不加载JS的问题
  • 原文地址:https://www.cnblogs.com/huanxiyun/p/5623021.html
Copyright © 2011-2022 走看看