測試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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM