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

  • 相关阅读:
    AIX root用户密码丢失怎么办?
    Oracle 11g Grid Infrastructure 卸载
    Failed to create a peer profile for Oracle Cluster GPnP. gpnptool rc=32512
    管理 IBM AIX 中的用户
    vbox克隆文件的路径如何修改?默认它生成在C盘,怎么修改?
    Oracle_dataguard__11G_配置与维护手册
    AIX管理员常用命令
    如何让你的SQL运行得更快
    ORA00604: 递归 SQL 级别 1 出现错误,ORA01000: 超出打开游标的最大数
    Adobe Acrobat 9.0“ PDFMaker无法找到Adobe PDF Printer 的打印驱动程序”解决办法
  • 原文地址:https://www.cnblogs.com/huanxiyun/p/5623021.html
Copyright © 2011-2022 走看看