22312312 发表于 2016-6-24 09:11:58

docker深入2-使用自定义的网络来配置zookeeper集群

                      docker深入2-使用自定义的网络来配置zookeeper集群
2016/6/23


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
一、示例
测试环境基于文档:docker深入2-熟悉v1.11和找不同.txt
目标:熟悉自定义网络的应用
------------------------------------------------------
---------------------- n36.test ----------------------
zk1                                        172.30.40.1
zk2   -> docker network(net_env_test) ->   172.30.40.2
zk3                                        172.30.40.3
------------------------------------------------------

二、镜像和网络
1、镜像
$ docker pull registry.aliyuncs.com/denverdino/zookeeper:3.4.8

2、自定义网络
$ docker network create --subnet 172.30.0.0/16 --gateway 172.30.0.1 --ip-range 172.30.0.0/17 net_env_test
fe455726968a326cbae52a4260cfd1d013884f897f442fdaafa43f6fa2dffcc3

三、启动zookeeper集群,指定IP地址
$ docker run -d \
--name zk1 \
--net net_env_test \
--ip 172.30.40.1 \
-e SERVER_ID=1 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=172.30.40.1:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=172.30.40.2:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=172.30.40.3:2888:3888 \
registry.aliyuncs.com/denverdino/zookeeper:3.4.8

$ docker run -d \
--name zk2 \
--net net_env_test \
--ip 172.30.40.2 \
-e SERVER_ID=2 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=172.30.40.1:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=172.30.40.2:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=172.30.40.3:2888:3888 \
registry.aliyuncs.com/denverdino/zookeeper:3.4.8

$ docker run -d \
--name zk3 \
--net net_env_test \
--ip 172.30.40.3 \
-e SERVER_ID=3 \
-e ADDITIONAL_ZOOKEEPER_1=server.1=172.30.40.1:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_2=server.2=172.30.40.2:2888:3888 \
-e ADDITIONAL_ZOOKEEPER_3=server.3=172.30.40.3:2888:3888 \
registry.aliyuncs.com/denverdino/zookeeper:3.4.8

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' `docker ps -f name=zk -q`
172.30.40.3
172.30.40.2
172.30.40.1

$ docker ps -f name=zk
CONTAINER ID      IMAGE                                              COMMAND               CREATED             STATUS            PORTS                        NAMES
c2feaffe2ce7      registry.aliyuncs.com/denverdino/zookeeper:3.4.8   "/opt/zookeeper.sh"   27 seconds ago      Up 26 seconds       2181/tcp, 2888/tcp, 3888/tcp   zk3
85e66c209e30      registry.aliyuncs.com/denverdino/zookeeper:3.4.8   "/opt/zookeeper.sh"   31 seconds ago      Up 30 seconds       2181/tcp, 2888/tcp, 3888/tcp   zk2
5950af6802fe      registry.aliyuncs.com/denverdino/zookeeper:3.4.8   "/opt/zookeeper.sh"   36 seconds ago      Up 35 seconds       2181/tcp, 2888/tcp, 3888/tcp   zk1


四、测试
1、连通性
$ docker exec -it zk1 bash
bash-4.3# ping zk2
PING zk2 (172.30.40.2): 56 data bytes
64 bytes from 172.30.40.2: seq=0 ttl=64 time=0.173 ms
^C
--- zk2 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.173/0.173/0.173 ms
bash-4.3# ping zk3
PING zk3 (172.30.40.3): 56 data bytes
64 bytes from 172.30.40.3: seq=0 ttl=64 time=0.101 ms
^C
--- zk3 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.101/0.101/0.101 ms


2、服务
$ docker exec -it zk1 bash
bash-4.3# bin/zkCli.sh -server zk3:2181
2016-06-23 03:27:28,058 - INFO - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT
2016-06-23 03:27:28,063 - INFO - Client environment:host.name=5950af6802fe
2016-06-23 03:27:28,063 - INFO - Client environment:java.version=1.8.0_77-internal
2016-06-23 03:27:28,066 - INFO - Client environment:java.vendor=Oracle Corporation
2016-06-23 03:27:28,067 - INFO - Client environment:java.home=/usr/lib/jvm/java-1.8-openjdk/jre
2016-06-23 03:27:28,067 - INFO - Client environment:java.class.path=/opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../build/lib/*.jar:/opt/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/opt/zookeeper/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/bin/../zookeeper-3.4.8.jar:/opt/zookeeper/bin/../src/java/lib/*.jar:/opt/zookeeper/bin/../conf:
2016-06-23 03:27:28,067 - INFO - Client environment:java.library.path=/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2016-06-23 03:27:28,067 - INFO - Client environment:java.io.tmpdir=/tmp
2016-06-23 03:27:28,067 - INFO - Client environment:java.compiler=<NA>
2016-06-23 03:27:28,068 - INFO - Client environment:os.name=Linux
2016-06-23 03:27:28,068 - INFO - Client environment:os.arch=amd64
2016-06-23 03:27:28,068 - INFO - Client environment:os.version=3.10.0-229.el7.x86_64
2016-06-23 03:27:28,068 - INFO - Client environment:user.name=root
2016-06-23 03:27:28,068 - INFO - Client environment:user.home=/root
2016-06-23 03:27:28,068 - INFO - Client environment:user.dir=/opt/zookeeper
2016-06-23 03:27:28,070 - INFO - Initiating client connection, connectString=zk3:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@3eb07fd3
Welcome to ZooKeeper!
2016-06-23 03:27:28,109 - INFO - Opening socket connection to server zk3.net_env_test/172.30.40.3:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-06-23 03:27:28,205 - INFO - Socket connection established to zk3.net_env_test/172.30.40.3:2181, initiating session
2016-06-23 03:27:28,215 - INFO - Session establishment complete on server zk3.net_env_test/172.30.40.3:2181, sessionid = 0x3557b3d3ba80001, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

ls /

create /zk_test test_data
Created /zk_test
ls /                        

get /zk_test
test_data
cZxid = 0x100000015
ctime = Thu Jun 23 03:28:07 GMT 2016
mZxid = 0x100000015
mtime = Thu Jun 23 03:28:07 GMT 2016
pZxid = 0x100000015
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
quit
Quitting...
2016-06-23 03:28:25,427 - INFO - Session: 0x3557b3d3ba80001 closed
bash-4.3#



ZYXW、参考
1、学习Docker容器网络模型 - 搭建分布式Zookeeper集群
https://yq.aliyun.com/articles/30328?spm=5176.100239.blogcont55866.14.KQScYn#
https://github.com/denverdino/aliyungo/wiki/Zookeeper-cluster-with-Docker?spm=5176.100239.blogcont30328.19.av6ce8





                   

BenjaminDu 发表于 2016-6-30 02:08:30

继续发帖,继续思路,我们都很期待你的新作

森淼 发表于 2016-6-30 14:37:29

真难得,好资料,搜藏了,多谢楼主!
页: [1]
查看完整版本: docker深入2-使用自定义的网络来配置zookeeper集群