1、安装docker-compose

有关的介绍可以看官方GitHub : https://github.com/docker/compose

安装docker-compose

curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

查看是否安装成功

[root@izbp13196wp34obmnd4avdz ~]# docker-compose --version
docker-compose version 1.24.1, build 4667896b

2、编写docker-compose.yml配置文件

 

version: '3.1'
services:
  zoo1:
    image: zookeeper
    restart: always
    hostname: zoo1
    ports:
      - 2184:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo2:
    image: zookeeper
    restart: always
    hostname: zoo2
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo3:
    image: zookeeper
    restart: always
    hostname: zoo3
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181

3、启动zookeeper集群

[root@rocketmq02 ~]# docker-compose up -d
Creating network "root_default" with the default driver
Creating root_zoo2_1 ... done
Creating root_zoo1_1 ... done
Creating root_zoo3_1 ... done

4、查看集群状态

[root@rocketmq02 ~]# docker ps
CONTAINER ID   IMAGE                                       COMMAND                  CREATED          STATUS          PORTS                                                                                                                             NAMES
38f54f273e8b   zookeeper                                   "/docker-entrypoint.…"   8 seconds ago    Up 5 seconds    2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2184->2181/tcp, :::2184->2181/tcp                                                           root_zoo1_1
a1c132eb4cbb   zookeeper                                   "/docker-entrypoint.…"   8 seconds ago    Up 5 seconds    2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2183->2181/tcp, :::2183->2181/tcp                                                           root_zoo3_1
c92e46937717   zookeeper                                   "/docker-entrypoint.…"   8 seconds ago    Up 7 seconds    2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2182->2181/tcp, :::2182->2181/tcp                                                           root_zoo2_1

登录测试如下

使用 Docker 命令行客户端连接 ZK 集群

[root@rocketmq02 ~]# docker run -it --rm         --link zoo1:zk1         --link zoo2:zk2         --link zoo3:zk3         --net root_default         zookeeper zkCli.sh -server zk1:2184,zk2:2181,zk3:2181
Connecting to zk1:2184,zk2:2181,zk3:2181
2021-04-24 15:57:44,109 [myid:] - INFO  [main:Environment@98] - Client environment:zookeeper.version=3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
2021-04-24 15:57:44,120 [myid:] - INFO  [main:Environment@98] - Client environment:host.name=fb9eb971bee4
2021-04-24 15:57:44,125 [myid:] - INFO  [main:Environment@98] - Client environment:java.version=11.0.10
2021-04-24 15:57:44,136 [myid:] - INFO  [main:Environment@98] - Client environment:java.vendor=Oracle Corporation
2021-04-24 15:57:44,136 [myid:] - INFO  [main:Environment@98] - Client environment:java.home=/usr/local/openjdk-11
2021-04-24 15:57:44,139 [myid:] - INFO  [main:Environment@98] - Client environment:java.class.path=/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/target/classes:/apache-zookeeper-3.7.0-bin/bin/../build/classes:/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/target/lib/*.jar:/apache-zookeeper-3.7.0-bin/bin/../build/lib/*.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-prometheus-metrics-3.7.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-jute-3.7.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-3.7.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/snappy-java-1.1.7.7.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/slf4j-log4j12-1.7.30.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/slf4j-api-1.7.30.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_servlet-0.9.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_hotspot-0.9.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_common-0.9.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient-0.9.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-native-unix-common-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-native-epoll-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-resolver-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-handler-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-common-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-codec-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/netty-buffer-4.1.59.Final.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/metrics-core-4.1.12.1.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/log4j-1.2.17.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jline-2.14.6.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-util-ajax-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-util-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-servlet-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-server-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-security-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-io-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-http-9.4.38.v20210224.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-databind-2.10.5.1.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-core-2.10.5.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-annotations-2.10.5.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/commons-cli-1.4.jar:/apache-zookeeper-3.7.0-bin/bin/../lib/audience-annotations-0.12.0.jar:/apache-zookeeper-3.7.0-bin/bin/../zookeeper-*.jar:/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/conf:
2021-04-24 15:57:44,140 [myid:] - INFO  [main:Environment@98] - Client environment:java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
2021-04-24 15:57:44,140 [myid:] - INFO  [main:Environment@98] - Client environment:java.io.tmpdir=/tmp
2021-04-24 15:57:44,140 [myid:] - INFO  [main:Environment@98] - Client environment:java.compiler=<NA>
2021-04-24 15:57:44,140 [myid:] - INFO  [main:Environment@98] - Client environment:os.name=Linux
2021-04-24 15:57:44,140 [myid:] - INFO  [main:Environment@98] - Client environment:os.arch=amd64
2021-04-24 15:57:44,140 [myid:] - INFO  [main:Environment@98] - Client environment:os.version=3.10.0-693.el7.x86_64
2021-04-24 15:57:44,143 [myid:] - INFO  [main:Environment@98] - Client environment:user.name=root
2021-04-24 15:57:44,143 [myid:] - INFO  [main:Environment@98] - Client environment:user.home=/root
2021-04-24 15:57:44,143 [myid:] - INFO  [main:Environment@98] - Client environment:user.dir=/apache-zookeeper-3.7.0-bin
2021-04-24 15:57:44,143 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.free=21MB
2021-04-24 15:57:44,157 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.max=247MB
2021-04-24 15:57:44,157 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.total=29MB
2021-04-24 15:57:44,175 [myid:] - INFO  [main:ZooKeeper@637] - Initiating client connection, connectString=zk1:2184,zk2:2181,zk3:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4c70fda8
2021-04-24 15:57:44,206 [myid:] - INFO  [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2021-04-24 15:57:44,228 [myid:] - INFO  [main:ClientCnxnSocket@239] - jute.maxbuffer value is 1048575 Bytes
2021-04-24 15:57:44,292 [myid:] - INFO  [main:ClientCnxn@1726] - zookeeper.request.timeout value is 0. feature enabled=false
Welcome to ZooKeeper!
JLine support is enabled
2021-04-24 15:57:44,452 [myid:zk3:2181] - INFO  [main-SendThread(zk3:2181):ClientCnxn$SendThread@1171] - Opening socket connection to server zk3/172.19.0.4:2181.
2021-04-24 15:57:44,471 [myid:zk3:2181] - INFO  [main-SendThread(zk3:2181):ClientCnxn$SendThread@1173] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
2021-04-24 15:57:44,533 [myid:zk3:2181] - INFO  [main-SendThread(zk3:2181):ClientCnxn$SendThread@1005] - Socket connection established, initiating session, client: /172.19.0.5:48718, server: zk3/172.19.0.4:2181
2021-04-24 15:57:44,651 [myid:zk3:2181] - INFO  [main-SendThread(zk3:2181):ClientCnxn$SendThread@1438] - Session establishment complete on server zk3/172.19.0.4:2181, session id = 0x300012b800d0000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: zk1:2184,zk2:2181,zk3:2181(CONNECTED) 0] 

 

Logo

一站式 AI 云服务平台

更多推荐