二、Docker下安装zookeeper(单机 & 集群)

一、安装与启动Docker

  • 参考
https://blog.csdn.net/weixin_39912640/article/details/120391027

二、单机 安装zookeeper

  • 1、先看一下我们有哪些选择。
    bash docker search zookeeper
    在这里插入图片描述

  • 2、选择镜像 下载
    docker pull zookeeper

docker pull zookeeper
C:\Users\admin>docker pull zookeeper
Using default tag: latest
latest: Pulling from library/zookeeper
latest: Pulling from library/zookeeper
f8416d8bac72: Pull complete
86ae0b0c4c13: Pull complete
613e763baa52: Pull complete
35021d7b4ebe: Pull complete
4da858024fe8: Pull complete
1496cce540d3: Pull complete
ffe1de8c02c9: Pull complete
27249bc166c9: Pull complete
Digest: sha256:61463427d81ec53585711fbce35ffea147b52f6c81b9283a67bff82efe9ae202
Status: Downloaded newer image for zookeeper:latest
docker.io/library/zookeeper:latest
  • 3、 查看镜像
C:\Users\admin>docker images
REPOSITORY               TAG       IMAGE ID       CREATED        SIZE
zookeeper                latest    2a33b1a1e11a   2 weeks ago    278MB
docker/getting-started   latest    083d7564d904   3 months ago   28MB

查看镜像的详细信息

C:\Users\admin>docker inspect 2a33b1a1e11a
[
    {
        "Id": "sha256:2a33b1a1e11ad0f64eba1364828fcbd4f60dd0b140e1d32b23c4f22e4c2df31d",
        "RepoTags": [
            "zookeeper:latest"
        ],
        "RepoDigests": [
            "zookeeper@sha256:61463427d81ec53585711fbce35ffea147b52f6c81b9283a67bff82efe9ae202"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2021-09-04T14:31:04.949531564Z",
        "Container": "a4d61f2a3bb7f0a594218851b0215132ea195f57df5d3e1b3a3c78d5d4da4b56",
        "ContainerConfig": {
            "Hostname": "a4d61f2a3bb7",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "2181/tcp": {},
                "2888/tcp": {},
                "3888/tcp": {},
                "8080/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/apache-zookeeper-3.7.0-bin/bin",
                "JAVA_HOME=/usr/local/openjdk-11",
                "LANG=C.UTF-8",
                "JAVA_VERSION=11.0.12",
                "ZOO_CONF_DIR=/conf",
                "ZOO_DATA_DIR=/data",
                "ZOO_DATA_LOG_DIR=/datalog",
                "ZOO_LOG_DIR=/logs",
                "ZOO_TICK_TIME=2000",
                "ZOO_INIT_LIMIT=5",
                "ZOO_SYNC_LIMIT=2",
                "ZOO_AUTOPURGE_PURGEINTERVAL=0",
                "ZOO_AUTOPURGE_SNAPRETAINCOUNT=3",
                "ZOO_MAX_CLIENT_CNXNS=60",
                "ZOO_STANDALONE_ENABLED=true",
                "ZOO_ADMINSERVER_ENABLED=true",
                "ZOOCFGDIR=/conf"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"zkServer.sh\" \"start-foreground\"]"
            ],
            "Image": "sha256:83871249bd21f7df0e3f9a25c365f2fe482cd839a62030a8cb819622a61757de",
            "Volumes": {
                "/data": {},
                "/datalog": {},
                "/logs": {}
            },
            "WorkingDir": "/apache-zookeeper-3.7.0-bin",
            "Entrypoint": [
                "/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "DockerVersion": "20.10.7",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "2181/tcp": {},
                "2888/tcp": {},
                "3888/tcp": {},
                "8080/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/apache-zookeeper-3.7.0-bin/bin",
                "JAVA_HOME=/usr/local/openjdk-11",
                "LANG=C.UTF-8",
                "JAVA_VERSION=11.0.12",
                "ZOO_CONF_DIR=/conf",
                "ZOO_DATA_DIR=/data",
                "ZOO_DATA_LOG_DIR=/datalog",
                "ZOO_LOG_DIR=/logs",
                "ZOO_TICK_TIME=2000",
                "ZOO_INIT_LIMIT=5",
                "ZOO_SYNC_LIMIT=2",
                "ZOO_AUTOPURGE_PURGEINTERVAL=0",
                "ZOO_AUTOPURGE_SNAPRETAINCOUNT=3",
                "ZOO_MAX_CLIENT_CNXNS=60",
                "ZOO_STANDALONE_ENABLED=true",
                "ZOO_ADMINSERVER_ENABLED=true",
                "ZOOCFGDIR=/conf"
            ],
            "Cmd": [
                "zkServer.sh",
                "start-foreground"
            ],
            "Image": "sha256:83871249bd21f7df0e3f9a25c365f2fe482cd839a62030a8cb819622a61757de",
            "Volumes": {
                "/data": {},
                "/datalog": {},
                "/logs": {}
            },
            "WorkingDir": "/apache-zookeeper-3.7.0-bin",
            "Entrypoint": [
                "/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 277857721,
        "VirtualSize": 277857721,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/b0bfa630ee4b4203023378269b7b48fdf4b69ac25f1eda815c0a1f10461b764e/diff:/var/lib/docker/overlay2/a4bec6903d40b8aa40a1b5132ad1abc8200fd3827b93c7fb763c8f70bb3de434/diff:/var/lib/docker/overlay2/33f2e4ae359ee4c6b7d8b3ef4deff28f57c59790e2cf6dd71d8dc00bac793b3c/diff:/var/lib/docker/overlay2/d7894f0298d1dbeb6692012f4a291d888902a306af655c59c4bd516af270f650/diff:/var/lib/docker/overlay2/a6516bee45b25a534f8e0b1e3fbc3669a05a24b4ceb6de78999cb460fbbf50f2/diff:/var/lib/docker/overlay2/b7ca3c42000851365e6a4b59fbd87bf5b286c7ee4017f9ef5576b6b3cf6f1a16/diff:/var/lib/docker/overlay2/839117d8ffae2b6d8f73b6af2066c639033dd9944445fe1837d8e2ae90b065dd/diff",
                "MergedDir": "/var/lib/docker/overlay2/69ec9ffe1b2d827a6c75f5247f581d7a71e8dfa941f54b79b1c4810fb2b24500/merged",
                "UpperDir": "/var/lib/docker/overlay2/69ec9ffe1b2d827a6c75f5247f581d7a71e8dfa941f54b79b1c4810fb2b24500/diff",
                "WorkDir": "/var/lib/docker/overlay2/69ec9ffe1b2d827a6c75f5247f581d7a71e8dfa941f54b79b1c4810fb2b24500/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:ba5a5fe4330168081f2a7e46f72c7552456d4d604ad27feadbe76ec86598587e",
                "sha256:2605f54a59eca936809baec0b33d9333bc5d3cdc57a9ea6c395abb766bea73ee",
                "sha256:9be53ed84a753f72f253cd789dd306a611d183b306ae265a8b4d7bbd167bac8a",
                "sha256:27947c0376868058509877698b397812424ee477f7fbc3cf76b547777c048410",
                "sha256:f290b03f22dda15089551b9c9b7f43f5e239da5c3c3098c1da84b2e67aa204ee",
                "sha256:9439b4444bd0ad670d99026cdce9c06602863bc37910a0a62a0b9d5f414155b5",
                "sha256:02a354ce9185f87185662d788cc1fcfc16b960bba27aa10d7729db37c395ea58",
                "sha256:662510598bd9d6b1166da778021b98007900dd4313ceed887d8ae0a8f8ff6ae2"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]
  • 4 默认拉取最新的版本,其他版本要指定标签
docker pull zookeeper:3.4.14

单机运行

  • 1、运行zookeeper
 C:\Users\admin> docker run -d -p 2181:2181 --name single-zookeeper --restart always 2a33b1a1e11a
99df08b0c7279c06ff4506e29d789794e60c60d2f9b40714a07a6915e2552647
  • 1.1命令解释:
docker run  运行容器
		-d	               	后台运行				
		-p 2181:2181   		将宿主机的2181端口和容器内的2181端口做映射
		--name single-zookeeper  给容器起个名字 以后可以通过这个名字访问容器
		 --restart always  	参数能够使我们在重启docker时,自动启动相关容器。
		 2a33b1a1e11a  	镜像的id 也可以使用镜像名称
  • 2、查看运行运行的容器
C:\Users\admin>docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                                                     NAMES
99df08b0c727   2a33b1a1e11a             "/docker-entrypoint.…"   2 minutes ago    Up 2 minutes    2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp   single-zookeeper
ca6106930324   docker/getting-started   "/docker-entrypoint.…"   44 minutes ago   Up 44 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp                                         elastic_albattani
  • 3、进去容器
# 3.1 进去容器
C:\Users\admin> docker exec -it 99df08b0c727   bash
# 3.2 启动客户端
root@99df08b0c727:/apache-zookeeper-3.7.0-bin# ./bin/zkCli.sh
root@99df08b0c727:/apache-zookeeper-3.7.0-bin# ./bin/zkCli.sh
Connecting to localhost:2181
2021-09-20 08:27:07,159 [myid:] - INFO  [main:Environment@98] - Client environment:zookeeper.version=3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
2021-09-20 08:27:07,162 [myid:] - INFO  [main:Environment@98] - Client environment:host.name=99df08b0c727
2021-09-20 08:27:07,162 [myid:] - INFO  [main:Environment@98] - Client environment:java.version=11.0.12
2021-09-20 08:27:07,163 [myid:] - INFO  [main:Environment@98] - Client environment:java.vendor=Oracle Corporation
2021-09-20 08:27:07,164 [myid:] - INFO  [main:Environment@98] - Client environment:java.home=/usr/local/openjdk-11
2021-09-20 08:27:07,164 [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-09-20 08:27:07,164 [myid:] - INFO  [main:Environment@98] - Client environment:java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
2021-09-20 08:27:07,164 [myid:] - INFO  [main:Environment@98] - Client environment:java.io.tmpdir=/tmp
2021-09-20 08:27:07,164 [myid:] - INFO  [main:Environment@98] - Client environment:java.compiler=<NA>
2021-09-20 08:27:07,165 [myid:] - INFO  [main:Environment@98] - Client environment:os.name=Linux
2021-09-20 08:27:07,165 [myid:] - INFO  [main:Environment@98] - Client environment:os.arch=amd64
2021-09-20 08:27:07,165 [myid:] - INFO  [main:Environment@98] - Client environment:os.version=5.10.16.3-microsoft-standard-WSL2
2021-09-20 08:27:07,165 [myid:] - INFO  [main:Environment@98] - Client environment:user.name=root
2021-09-20 08:27:07,165 [myid:] - INFO  [main:Environment@98] - Client environment:user.home=/root
2021-09-20 08:27:07,165 [myid:] - INFO  [main:Environment@98] - Client environment:user.dir=/apache-zookeeper-3.7.0-bin
2021-09-20 08:27:07,166 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.free=193MB
2021-09-20 08:27:07,168 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.max=256MB
2021-09-20 08:27:07,168 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.total=202MB
2021-09-20 08:27:07,171 [myid:] - INFO  [main:ZooKeeper@637] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@7946e1f4
2021-09-20 08:27:07,174 [myid:] - INFO  [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2021-09-20 08:27:07,179 [myid:] - INFO  [main:ClientCnxnSocket@239] - jute.maxbuffer value is 1048575 Bytes
2021-09-20 08:27:07,187 [myid:] - INFO  [main:ClientCnxn@1726] - zookeeper.request.timeout value is 0. feature enabled=false
Welcome to ZooKeeper!
2021-09-20 08:27:07,203 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1171] - Opening socket connection to server localhost/127.0.0.1:2181.
2021-09-20 08:27:07,204 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1173] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2021-09-20 08:27:07,214 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1005] - Socket connection established, initiating session, client: /127.0.0.1:60000, server: localhost/127.0.0.1:2181
2021-09-20 08:27:07,247 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1438] - Session establishment complete on server localhost/127.0.0.1:2181, session id = 0x100003701150000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
# 查看节点信息
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]

4、外部访问
4.1 下载zookeeper安装包
地址:http://zookeeper.apache.org/

4.2 测试连接
zkCli.cmd -server 172.19.224.1:2181
F:\zookeeper\apache-zookeeper-3.7.0-bin\bin>zkCli.cmd -server 172.19.224.1:2181
Connecting to 172.19.224.1:2181
2021-09-20 16:43:15,530 [myid:] - INFO  [main:Environment@98] - Client environment:zookeeper.version=3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
2021-09-20 16:43:15,533 [myid:] - INFO  [main:Environment@98] - Client environment:host.name=DESKTOP-DD9ESB9
2021-09-20 16:43:15,533 [myid:] - INFO  [main:Environment@98] - Client environment:java.version=1.8.0_241
2021-09-20 16:43:15,535 [myid:] - INFO  [main:Environment@98] - Client environment:java.vendor=Oracle Corporation
2021-09-20 16:43:15,535 [myid:] - INFO  [main:Environment@98] - Client environment:java.home=C:\Program Files\Java\jdk1.8.0_241\jre
2021-09-20 16:43:15,536 [myid:] - INFO  [main:Environment@98] - Client environment:java.class.path=F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\build\classes;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\build\lib\*;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\*;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\audience-annotations-0.12.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\commons-cli-1.4.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jackson-annotations-2.10.5.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jackson-core-2.10.5.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jackson-databind-2.10.5.1.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\javax.servlet-api-3.1.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-http-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-io-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-security-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-server-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-servlet-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-util-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-util-ajax-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jline-2.14.6.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\log4j-1.2.17.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\metrics-core-4.1.12.1.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-buffer-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-codec-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-common-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-handler-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-resolver-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-transport-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-transport-native-epoll-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-transport-native-unix-common-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\simpleclient-0.9.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\simpleclient_common-0.9.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\simpleclient_hotspot-0.9.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\simpleclient_servlet-0.9.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\slf4j-api-1.7.30.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\slf4j-log4j12-1.7.30.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\snappy-java-1.1.7.7.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\zookeeper-3.7.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\zookeeper-jute-3.7.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\zookeeper-prometheus-metrics-3.7.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\conf
2021-09-20 16:43:15,536 [myid:] - INFO  [main:Environment@98] - Client environment:java.library.path=C:\Program Files\Java\jdk1.8.0_241\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;G:\NetSarang\Xftp 6\;G:\NetSarang\Xshell 6\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;G:\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;F:\nodeJs\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Users\admin\AppData\Local\Microsoft\WindowsApps;G:\Bandizip\;F:\MySQL\MySQL Server 5.7\bin;C:\Program Files\Java\jdk1.8.0_241\bin;C:\Program Files\Java\jdk1.8.0_241\jre\bin;C:\Users\admin\AppData\Roaming\npm;C:\Program Files\gradle-4.10.3\bin;;C:\Program Files (x86)\MyDrivers\DriverGenius;C:\Program Files (x86)\MyDrivers\DriverGenius\ksoft;.
2021-09-20 16:43:15,537 [myid:] - INFO  [main:Environment@98] - Client environment:java.io.tmpdir=C:\Users\admin\AppData\Local\Temp\
2021-09-20 16:43:15,537 [myid:] - INFO  [main:Environment@98] - Client environment:java.compiler=<NA>
2021-09-20 16:43:15,538 [myid:] - INFO  [main:Environment@98] - Client environment:os.name=Windows 10
2021-09-20 16:43:15,538 [myid:] - INFO  [main:Environment@98] - Client environment:os.arch=amd64
2021-09-20 16:43:15,539 [myid:] - INFO  [main:Environment@98] - Client environment:os.version=10.0
2021-09-20 16:43:15,539 [myid:] - INFO  [main:Environment@98] - Client environment:user.name=admin
2021-09-20 16:43:15,540 [myid:] - INFO  [main:Environment@98] - Client environment:user.home=C:\Users\admin
2021-09-20 16:43:15,540 [myid:] - INFO  [main:Environment@98] - Client environment:user.dir=F:\zookeeper\apache-zookeeper-3.7.0-bin\bin
2021-09-20 16:43:15,540 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.free=235MB
2021-09-20 16:43:15,542 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.max=3630MB
2021-09-20 16:43:15,542 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.total=245MB
2021-09-20 16:43:15,546 [myid:] - INFO  [main:ZooKeeper@637] - Initiating client connection, connectString=172.19.224.1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@61baa894
2021-09-20 16:43:15,552 [myid:] - INFO  [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2021-09-20 16:43:15,834 [myid:] - INFO  [main:ClientCnxnSocket@239] - jute.maxbuffer value is 1048575 Bytes
2021-09-20 16:43:15,845 [myid:] - INFO  [main:ClientCnxn@1726] - zookeeper.request.timeout value is 0. feature enabled=false
Welcome to ZooKeeper!
2021-09-20 16:43:15,852 [myid:172.19.224.1:2181] - INFO  [main-SendThread(172.19.224.1:2181):ClientCnxn$SendThread@1171] - Opening socket connection to server DESKTOP-DD9ESB9.mshome.net/172.19.224.1:2181.
2021-09-20 16:43:15,852 [myid:172.19.224.1:2181] - INFO  [main-SendThread(172.19.224.1:2181):ClientCnxn$SendThread@1173] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
2021-09-20 16:43:15,855 [myid:172.19.224.1:2181] - INFO  [main-SendThread(172.19.224.1:2181):ClientCnxn$SendThread@1005] - Socket connection established, initiating session, client: /172.19.224.1:52655, server: DESKTOP-DD9ESB9.mshome.net/172.19.224.1:2181
JLine support is enabled
2021-09-20 16:43:15,864 [myid:172.19.224.1:2181] - INFO  [main-SendThread(172.19.224.1:2181):ClientCnxn$SendThread@1438] - Session establishment complete on server DESKTOP-DD9ESB9.mshome.net/172.19.224.1:2181, session id = 0x100003701150005, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
# 查询根节点下的节点
[zk: 172.19.224.1:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: 172.19.224.1:2181(CONNECTED) 1]

单机告一段落下边来看看集群如何搭建

**

集群

环境: 单台宿主机,启动三个zookeeper容器。

1、这里涉及一个问题,就是Docker容器之间通信的问题,这个很重要!

	C:\Users\admin>docker network ls
	NETWORK ID     NAME      DRIVER    SCOPE
	14d7e0a125f5   bridge    bridge    local
	1a6f958d0d96   host      host      local
	ca6f607a6b43   none      null      local

!重要

Docker有三种网络模式,bridge、host、none,在你创建容器的时候,不指定–network默认是bridge。

这个需要单独学习一下docker的网络通讯

  • bridge:为每一个容器分配IP,并将容器连接到一个docker0虚拟网桥,通过docker0网桥与宿主机通信。也就是说,此模式下,你不能用宿主机的IP+容器映射端口来进行Docker容器之间的通信。
  • host:容器不会虚拟自己的网卡,配置自己的IP,而是使用宿主机的IP和端口。这样一来,Docker容器之间的通信就可以用宿主机的IP+容器映射端口
  • none:无网络。

2、准备

2.1 先在本地创建目录:
F:\zookeeper\zk_node1
F:\zookeeper\zk_node2
F:\zookeeper\zk_node3

错误提示:

  1. Bind for 0.0.0.0:2181 failed: port is already allocated. 端口号被占用了换一个端口号

错误脚本

docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper_node1 --privileged --restart always -v F:/zookeeper/zk_node1/volumes/data:/data -v F:/zookeeper/zk_node1/volumes/datalog:/datalog -v F:/zookeeper/zk_node1/volumes/logs:/logs -e ZOO_MY_ID=1 -e "ZOO_SERVERS=server.1=192.168.101.23:2888:3888;2181 server.2=192.168.101.23:2889:3889;2182 server.3=192.168.101.23:2890:3890;2183" 2a33b1a1e11a


docker run -d -p 2182:2181 -p 2889:2888 -p 3889:3888 --name zookeeper_node2 --privileged --restart always -v F:/zookeeper/zk_node2/volumes/data:/data -v F:/zookeeper/zk_node2/volumes/datalog:/datalog -v F:/zookeeper/zk_node2/volumes/logs:/logs -e ZOO_MY_ID=2 -e "ZOO_SERVERS=server.1=192.168.101.23:2888:3888;2181 server.2=192.168.101.23:2889:3889;2182 server.3=192.168.101.23:2890:3890;2183" 2a33b1a1e11a



docker run -d -p 2183:2181 -p 2890:2888 -p 3890:3888 --name zookeeper_node3 --privileged --restart always -v F:/zookeeper/zk_node3/volumes/data:/data -v F:/zookeeper/zk_node3/volumes/datalog:/datalog -v F:/zookeeper/zk_node3/volumes/logs:/logs -e ZOO_MY_ID=3 -e "ZOO_SERVERS=server.1=192.168.101.23:2888:3888;2181 server.2=192.168.101.23:2889:3889;2182 server.3=192.168.101.23:2890:3890;2183" 2a33b1a1e11a

【坑】
乍一看,没什么问题啊,首先映射端口到宿主机,然后三个zookeeper之间的访问地址则是宿主机IP:映射端口,没毛病啊;
看我前面讲的网络模式就能看出问题,ZOO_SERVERS里面的IP有问题,犯这个错误都是不了解Docker的网络模式的。什么错误往下看。

参数解读

端口映射三个容器不一样,比如2181/2182/2183,因为是一台宿主机嘛,端口不能冲突,如果你不在同一台机器,就不用修改端口。

最后的那个参数是镜像ID,也可以是镜像名称:TAG。
#启动容器
docker run 
# 后台运行
-d 
# 宿主机与容器端口映射
-p 2183:2181 
-p 2890:2888 
-p 3890:3888 
# 容器名称
--name zookeeper_node3 
#--privileged=true参数是为了解决【chown: changing ownership of '/data': Permission denied】,也可以省略true
--privileged  
# 服务重启的时候容器也重新启动
--restart always docker
# 数据
-v F:/zookeeper/zk_node3/volumes/data:/data   
# 数据日志
-v F:/zookeeper/zk_node3/volumes/datalog:/datalog  
# 日志
-v F:/zookeeper/zk_node3/volumes/logs:/logs
# zookeeper集群
-e ZOO_MY_ID=3 -e "ZOO_SERVERS=server.1=172.29.160.1:2888:3888;2181  server.2=172.29.160.1:2889:3889;2182 server.3=172.29.160.1:2890:3890;2183"
#镜像id
2a33b1a1e11a

查看运行中的容器会发先zookeeper的三个容器的状态是在重启中和启动成功来回切换
可以多执行几次 docker ps 查看状态

C:\Users\admin>docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS                           PORTS                               NAMES
e9f4dffa19ee   2a33b1a1e11a             "/docker-entrypoint.…"   2 minutes ago   Restarting (14) 29 seconds ago                                       zookeeper_node3
a1f42b37f48d   2a33b1a1e11a             "/docker-entrypoint.…"   2 minutes ago   Restarting (14) 3 seconds ago                                        zookeeper_node2
b93bb908b5fa   2a33b1a1e11a             "/docker-entrypoint.…"   4 minutes ago   Restarting (14) 19 seconds ago                                       zookeeper_node1

我们来看下节点 zookeeper_node1 的启动日志
docker logs -f d3b18fee0741

2021-09-20 09:57:13,600 [myid:1] - WARN  [QuorumConnectionThread-[myid=1]-1:QuorumCnxManager@401] - Cannot open channel to 2 at election address /192.168.101.23:3889
java.net.ConnectException: Connection refused (Connection refused)
        at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
        at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
        at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
        at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
        at java.base/java.net.Socket.connect(Unknown Source)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:384)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:458)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
2021-09-20 09:57:13,600 [myid:1] - WARN  [QuorumConnectionThread-[myid=1]-2:QuorumCnxManager@401] - Cannot open channel to 3 at election address /192.168.101.23:3890
java.net.ConnectException: Connection refused (Connection refused)
        at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
        at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
        at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
        at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
        at java.base/java.net.Socket.connect(Unknown Source)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:384)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:458)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
2021-09-20 09:57:14,566 [myid:1] - ERROR [ListenerHandler-/192.168.101.23:3888:QuorumCnxManager$Listener$ListenerHandler@1113] - Leaving listener thread for address 192.168.101.23:3888 after 3 errors. Use zookeeper.electionPortBindRetry property to increase retry count.

Cannot open channel to 2 at election address /192.168.101.23:3889
Cannot open channel to 3 at election address /192.168.101.23:3890

连接不上2 和 3,为什么呢,因为在默认的Docker网络模式下,通过宿主机的IP+映射端口,根本找不到啊!他们有自己的IP啊
这个地方也有个坑, 执行docker ps时 STATUS刚开始是变化的,执行inspect 的时候需要手速快一点才能看到网络的信息。

C:\Users\admin> docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS                           PORTS                               NAMES
d9e61e02a0ba   2a33b1a1e11a             "/docker-entrypoint.…"   8 minutes ago   Restarting (14) 49 seconds ago                                       zookeeper_node3
29d59fbc93fb   2a33b1a1e11a             "/docker-entrypoint.…"   8 minutes ago   Restarting (14) 51 seconds ago                                       zookeeper_node2
d3b18fee0741   2a33b1a1e11a             "/docker-entrypoint.…"   9 minutes ago   Restarting (14) 57 seconds ago       
# **查看容器详情 发现每个节点都有自己的ip地址**
C:\Users\admin>docker inspect 29d59fbc93fb

"Networks": {
         "bridge": {
             "IPAMConfig": null,
             "Links": null,
             "Aliases": null,
             "NetworkID": "14d7e0a125f5cc3a7bcfe78e5d79664f0bdeb584eb9eb5cc9fd8fe12b3be9d40",
             "EndpointID": "a2882419481895ce98a0d60738ed5891b6be1ec0d8a783c0896610725960770f",
             "Gateway": "172.17.0.1",
             "IPAddress": "172.17.0.4",
             "IPPrefixLen": 16,
             "IPv6Gateway": "",
             "GlobalIPv6Address": "",
             "GlobalIPv6PrefixLen": 0,
             "MacAddress": "02:42:ac:11:00:04",
             "DriverOpts": null
         }
     }
 }                                                                                              

node1—172.17.0.2
node2—172.17.0.3
node3—172.17.0.4
既然我们知道了它有自己的IP,那又出现另一个问题了,就是它的ip是动态的,启动之前我们无法得知。有个解决办法就是创建自己的bridge网络,然后创建容器的时候指定ip。

【正确方式开始】

1. 通过 docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zoonet

2. docker network inspect 13e3a2587ec7 查看网络详情**

C:\Users\admin>docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zoonet
13e3a2587ec7b990147f79b9c3091b1417cd63a1fe9f01af39a09ed50ed6a0ac

C:\Users\admin>docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
14d7e0a125f5   bridge    bridge    local
1a6f958d0d96   host      host      local
ca6f607a6b43   none      null      local
13e3a2587ec7   zoonet    bridge    local

C:\Users\admin>docker network inspect 13e3a2587ec7
[
    {
        "Name": "zoonet",
        "Id": "13e3a2587ec7b990147f79b9c3091b1417cd63a1fe9f01af39a09ed50ed6a0ac",
        "Created": "2021-09-20T10:13:45.517183709Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

参数解释:

创建一个bridge的子网络, 子网ip 172.18.0.0/16 网关是172.18.0.1   别名 zoonet
docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zoonet

然后我们修改一下zookeeper容器的创建命令

docker run -d -p 2181:2181 --name zookeeper_node1 --privileged --restart always --network zoonet --ip 172.18.0.2 -v F:/zookeeper/zk_node1/volumes\data:/data -v F:/zookeeper/zk_node1/volumes/datalog:/datalog -v F:/zookeeper/zk_node1/volumes/logs:/logs -e ZOO_MY_ID=1 -e "ZOO_SERVERS=server.1=172.18.0.2:2888:3888;2181 server.2=172.18.0.3:2888:3888;2181 server.3=172.18.0.4:2888:3888;2181" 2a33b1a1e11a



docker run -d -p 2182:2181 --name zookeeper_node2 --privileged --restart always --network zoonet --ip 172.18.0.3 -v F:/zookeeper/zk_node2/volumes/data:/data -v F:/zookeeper/zk_node2/volumes/datalog:/datalog -v F:/zookeeper/zk_node2/volumes/logs:/logs -e ZOO_MY_ID=2 -e "ZOO_SERVERS=server.1=172.18.0.2:2888:3888;2181 server.2=172.18.0.3:2888:3888;2181 server.3=172.18.0.4:2888:3888;2181" 2a33b1a1e11a




docker run -d -p 2183:2181 --name zookeeper_node3 --privileged --restart always --network zoonet --ip 172.18.0.4 -v F:/zookeeper/zk_node3/volumes/data:/data -v F:/zookeeper/zk_node3/volumes/datalog:/datalog -v F:/zookeeper/zk_node3/volumes/logs:/logs -e ZOO_MY_ID=3 -e "ZOO_SERVERS=server.1=172.18.0.2:2888:3888;2181 server.2=172.18.0.3:2888:3888;2181 server.3=172.18.0.4:2888:3888;2181" 2a33b1a1e11a
  1. 由于2888 、3888 不需要暴露,就不映射了;

  2. 指定自己的网络,并指定IP;

  3. 每个容器之间环境是隔离的,所以容器内所用的端口一样:2181/2888/3888

https://www.cnblogs.com/LUA123/p/11428113.html

1.执行脚本成功后查看容器 全部启动成功

C:\Users\admin>docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS         PORTS                                                                     NAMES
471aee026091   2a33b1a1e11a             "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes   2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2183->2181/tcp, :::2183->2181/tcp   zookeeper_node3
515cb1dbdf04   2a33b1a1e11a             "/docker-entrypoint.…"   5 minutes ago   Up 5 minutes   2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2182->2181/tcp, :::2182->2181/tcp   zookeeper_node2
05ea5a50e040   2a33b1a1e11a             "/docker-entrypoint.…"   5 minutes ago   Up 5 minutes   2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :

2.进入容器内部验证一下:

C:\Users\admin>docker exec -it 471aee026091  bash
root@471aee026091:/apache-zookeeper-3.7.0-bin# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
# 从节点
Mode: follower
root@471aee026091:/apache-zookeeper-3.7.0-bin# exit
exit

C:\Users\admin> docker exec -it 515cb1dbdf04  bash
root@515cb1dbdf04:/apache-zookeeper-3.7.0-bin# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
# 主节点
Mode: leader
root@515cb1dbdf04:/apache-zookeeper-3.7.0-bin# exit
exit

C:\Users\admin> docker exec -it 05ea5a50e040   bash
root@05ea5a50e040:/apache-zookeeper-3.7.0-bin# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
# 从节点
Mode: follower
root@05ea5a50e040:/apache-zookeeper-3.7.0-bin#

在本地,我用zookeeper的客户端连接虚拟机上的集群:

F:\zookeeper\apache-zookeeper-3.7.0-bin\bin>zkCli.cmd -server 192.168.101.23:2181,192.168.101.23:2182,192.168.101.23:2183
Connecting to 192.168.101.23:2181,192.168.101.23:2182,192.168.101.23:2183
2021-09-20 18:47:17,080 [myid:] - INFO  [main:Environment@98] - Client environment:zookeeper.version=3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
2021-09-20 18:47:17,083 [myid:] - INFO  [main:Environment@98] - Client environment:host.name=DESKTOP-DD9ESB9
2021-09-20 18:47:17,083 [myid:] - INFO  [main:Environment@98] - Client environment:java.version=1.8.0_241
2021-09-20 18:47:17,085 [myid:] - INFO  [main:Environment@98] - Client environment:java.vendor=Oracle Corporation
2021-09-20 18:47:17,085 [myid:] - INFO  [main:Environment@98] - Client environment:java.home=C:\Program Files\Java\jdk1.8.0_241\jre
2021-09-20 18:47:17,085 [myid:] - INFO  [main:Environment@98] - Client environment:java.class.path=F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\build\classes;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\build\lib\*;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\*;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\audience-annotations-0.12.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\commons-cli-1.4.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jackson-annotations-2.10.5.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jackson-core-2.10.5.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jackson-databind-2.10.5.1.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\javax.servlet-api-3.1.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-http-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-io-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-security-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-server-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-servlet-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-util-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jetty-util-ajax-9.4.38.v20210224.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\jline-2.14.6.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\log4j-1.2.17.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\metrics-core-4.1.12.1.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-buffer-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-codec-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-common-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-handler-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-resolver-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-transport-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-transport-native-epoll-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\netty-transport-native-unix-common-4.1.59.Final.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\simpleclient-0.9.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\simpleclient_common-0.9.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\simpleclient_hotspot-0.9.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\simpleclient_servlet-0.9.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\slf4j-api-1.7.30.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\slf4j-log4j12-1.7.30.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\snappy-java-1.1.7.7.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\zookeeper-3.7.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\zookeeper-jute-3.7.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\lib\zookeeper-prometheus-metrics-3.7.0.jar;F:\zookeeper\apache-zookeeper-3.7.0-bin\bin\..\conf
2021-09-20 18:47:17,086 [myid:] - INFO  [main:Environment@98] - Client environment:java.library.path=C:\Program Files\Java\jdk1.8.0_241\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;G:\NetSarang\Xftp 6\;G:\NetSarang\Xshell 6\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;G:\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;F:\nodeJs\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Users\admin\AppData\Local\Microsoft\WindowsApps;G:\Bandizip\;F:\MySQL\MySQL Server 5.7\bin;C:\Program Files\Java\jdk1.8.0_241\bin;C:\Program Files\Java\jdk1.8.0_241\jre\bin;C:\Users\admin\AppData\Roaming\npm;C:\Program Files\gradle-4.10.3\bin;;C:\Program Files (x86)\MyDrivers\DriverGenius;C:\Program Files (x86)\MyDrivers\DriverGenius\ksoft;.
2021-09-20 18:47:17,087 [myid:] - INFO  [main:Environment@98] - Client environment:java.io.tmpdir=C:\Users\admin\AppData\Local\Temp\
2021-09-20 18:47:17,087 [myid:] - INFO  [main:Environment@98] - Client environment:java.compiler=<NA>
2021-09-20 18:47:17,087 [myid:] - INFO  [main:Environment@98] - Client environment:os.name=Windows 10
2021-09-20 18:47:17,088 [myid:] - INFO  [main:Environment@98] - Client environment:os.arch=amd64
2021-09-20 18:47:17,088 [myid:] - INFO  [main:Environment@98] - Client environment:os.version=10.0
2021-09-20 18:47:17,089 [myid:] - INFO  [main:Environment@98] - Client environment:user.name=admin
2021-09-20 18:47:17,089 [myid:] - INFO  [main:Environment@98] - Client environment:user.home=C:\Users\admin
2021-09-20 18:47:17,089 [myid:] - INFO  [main:Environment@98] - Client environment:user.dir=F:\zookeeper\apache-zookeeper-3.7.0-bin\bin
2021-09-20 18:47:17,090 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.free=235MB
2021-09-20 18:47:17,091 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.max=3630MB
2021-09-20 18:47:17,092 [myid:] - INFO  [main:Environment@98] - Client environment:os.memory.total=245MB
2021-09-20 18:47:17,096 [myid:] - INFO  [main:ZooKeeper@637] - Initiating client connection, connectString=192.168.101.23:2181,192.168.101.23:2182,192.168.101.23:2183 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@61baa894
2021-09-20 18:47:17,102 [myid:] - INFO  [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2021-09-20 18:47:17,391 [myid:] - INFO  [main:ClientCnxnSocket@239] - jute.maxbuffer value is 1048575 Bytes
2021-09-20 18:47:17,399 [myid:] - INFO  [main:ClientCnxn@1726] - zookeeper.request.timeout value is 0. feature enabled=false
Welcome to ZooKeeper!
2021-09-20 18:47:17,405 [myid:192.168.101.23:2181] - INFO  [main-SendThread(192.168.101.23:2181):ClientCnxn$SendThread@1171] - Opening socket connection to server host.docker.internal/192.168.101.23:2181.
2021-09-20 18:47:17,406 [myid:192.168.101.23:2181] - INFO  [main-SendThread(192.168.101.23:2181):ClientCnxn$SendThread@1173] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
2021-09-20 18:47:17,408 [myid:192.168.101.23:2181] - INFO  [main-SendThread(192.168.101.23:2181):ClientCnxn$SendThread@1005] - Socket connection established, initiating session, client: /192.168.101.23:56281, server: host.docker.internal/192.168.101.23:2181
JLine support is enabled
[zk: 192.168.101.23:2181,192.168.101.23:2182,192.168.101.23:2183(CONNECTING) 0] 2021-09-20 18:47:17,977 [myid:192.168.101.23:2181] - INFO  [main-SendThread(192.168.101.23:2181):ClientCnxn$SendThread@1438] - Session establishment complete on server host.docker.internal/192.168.101.23:2181, session id = 0x10000b751600000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

链接成功
创建节点

[zk: 192.168.101.23:2181,192.168.101.23:2182,192.168.101.23:2183(CONNECTED) 2] create /myslq "sql"
Created /myslq
[zk: 192.168.101.23:2181,192.168.101.23:2182,192.168.101.23:2183(CONNECTED) 4] get /myslq
sql
[zk: 192.168.101.23:2181,192.168.101.23:2182,192.168.101.23:2183(CONNECTED) 5]

进入docker容器中查看是否创建成功

[zk: localhost:2181(CONNECTING) 0] get /myslq
sql
[zk: localhost:2181(CONNECTED) 1]

大功告成

参考文档:
https://www.cnblogs.com/LUA123/p/11428113.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值