欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識(shí)庫 > Docker下安裝zookeeper(單機(jī)和集群)

Docker下安裝zookeeper(單機(jī)和集群)

熱門標(biāo)簽:網(wǎng)站上插入地圖標(biāo)注內(nèi)容 重慶營銷外呼系統(tǒng)排名 地圖標(biāo)注企業(yè)名稱侵權(quán)案件 400電話辦理哪家好廠商 工廠位置地圖標(biāo)注 地圖標(biāo)注需要現(xiàn)場(chǎng)嗎 鶴壁電銷外呼系統(tǒng)怎么安裝 企業(yè)400電話辦理哪正規(guī) 繽客網(wǎng)注冊(cè)時(shí)地圖標(biāo)注出不來

啟動(dòng)Docker后,先看一下我們有哪些選擇。

有官方的當(dāng)然選擇官方啦~

下載:

[root@localhost admin]# docker pull zookeeper
Using default tag: latest
Trying to pull repository docker.io/library/zookeeper ...
latest: Pulling from docker.io/library/zookeeper
1ab2bdfe9778: Already exists
7aaf9a088d61: Pull complete
80a55c9c9fe8: Pull complete
a0086b0e6eec: Pull complete
4165e7457cad: Pull complete
bcba13bcf3a1: Pull complete
41c03a109e47: Pull complete
4d5281c6b0d4: Pull complete
Digest: sha256:175d6bb1471e1e37a48bfa41a9da047c80fade60fd585eae3a0e08a4ce1d39ed
Status: Downloaded newer image for docker.io/zookeeper:latest

查看鏡像詳情

[root@localhost admin]# docker images
REPOSITORY          TAG         IMAGE ID      CREATED       SIZE
192.168.192.128:443/hello-2  latest       0c24558dd388    42 hours ago    660 MB
192.168.192.128:443/hello   latest       a3ba3d430bed    42 hours ago    660 MB
docker.io/nginx        latest       5a3221f0137b    13 days ago     126 MB
docker.io/zookeeper      latest       3487af26dee9    13 days ago     225 MB
docker.io/registry      latest       f32a97de94e1    5 months ago    25.8 MB
docker.io/mongo        latest       8bf72137439e    12 months ago    380 MB
docker.io/influxdb      latest       34de2bdc2d7f    12 months ago    213 MB
docker.io/centos       latest       5182e96772bf    12 months ago    200 MB
docker.io/grafana/grafana   latest       3e16e05be9a3    13 months ago    245 MB
docker.io/hello-world     latest       2cb0d9787c4d    13 months ago    1.85 kB
docker.io/java        latest       d23bdf5b1b1b    2 years ago     643 MB
[root@localhost admin]# docker inspect 3487af26dee9
[
  {
    "Id": "sha256:3487af26dee9ef9eacee9a97521bc4f0243bef0b285247258c32f4a03cab92c5",
    "RepoTags": [
      "docker.io/zookeeper:latest"
    ],
    "RepoDigests": [
      "docker.io/zookeeper@sha256:175d6bb1471e1e37a48bfa41a9da047c80fade60fd585eae3a0e08a4ce1d39ed"
    ],
    "Parent": "",
    "Comment": "",
    "Created": "2019-08-15T06:10:50.178554969Z",
    "Container": "9a38467115f1952161d6075135d5c5287967282b834cfe68183339c810f9652b",
    "ContainerConfig": {
      "Hostname": "9a38467115f1",
      "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-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/apache-zookeeper-3.5.5-bin/bin",
        "LANG=C.UTF-8",
        "JAVA_HOME=/usr/local/openjdk-8",
        "JAVA_VERSION=8u222",
        "JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jre_",
        "JAVA_URL_VERSION=8u222b10",
        "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\"]"
      ],
      "ArgsEscaped": true,
      "Image": "sha256:20bf3cc1bd5b5766b79da5265e94007d0802ce241df1636d0f63e211a79a0e3e",
      "Volumes": {
        "/data": {},
        "/datalog": {},
        "/logs": {}
      },
      "WorkingDir": "/apache-zookeeper-3.5.5-bin",
      "Entrypoint": [
        "/docker-entrypoint.sh"
      ],
      "OnBuild": null,
      "Labels": {}
    },
    "DockerVersion": "18.06.1-ce",
    "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-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/apache-zookeeper-3.5.5-bin/bin",
        "LANG=C.UTF-8",
        "JAVA_HOME=/usr/local/openjdk-8",
        "JAVA_VERSION=8u222",
        "JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jre_",
        "JAVA_URL_VERSION=8u222b10",
        "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"
      ],
      "ArgsEscaped": true,
      "Image": "sha256:20bf3cc1bd5b5766b79da5265e94007d0802ce241df1636d0f63e211a79a0e3e",
      "Volumes": {
        "/data": {},
        "/datalog": {},
        "/logs": {}
      },
      "WorkingDir": "/apache-zookeeper-3.5.5-bin",
      "Entrypoint": [
        "/docker-entrypoint.sh"
      ],
      "OnBuild": null,
      "Labels": null
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 225126346,
    "VirtualSize": 225126346,
    "GraphDriver": {
      "Name": "overlay2",
      "Data": {
        "LowerDir": "/var/lib/docker/overlay2/92185ebf7638a7b34180cfb87795dd758405cbad4fd0139b92a227d1a4b61847/diff:/var/lib/docker/overlay2/8787e91f5c03a7c03cee072019eca49a0402a0a0902be39ed0b5d651a79cce35/diff:/var/lib/docker/overlay2/ce5864ddfa4d1478047aa9fcaa03744e8a4078ebe43b41e7836c96c54c724044/diff:/var/lib/docker/overlay2/fc99437bcfbabb9e8234c06c90d1c60e58c34ac053aff1adc368b7ad3a50c158/diff:/var/lib/docker/overlay2/1779297a8980830229bd4bf58bd741730956d6797332fd07b863a1b48dcb6fa2/diff:/var/lib/docker/overlay2/ee735aa3608d890ac4751dd93581a67cb54a5dd4714081e9d09d0ebd9dbc3501/diff:/var/lib/docker/overlay2/cf6b3cbc42f3c8d1fb09b29db0dafbb4dceb120925970ab8a3871eaa8562414c/diff",
        "MergedDir": "/var/lib/docker/overlay2/a7fcc1b78c472cde943f20d1d4495f145308507b5fe3da8800c33dc4ce426156/merged",
        "UpperDir": "/var/lib/docker/overlay2/a7fcc1b78c472cde943f20d1d4495f145308507b5fe3da8800c33dc4ce426156/diff",
        "WorkDir": "/var/lib/docker/overlay2/a7fcc1b78c472cde943f20d1d4495f145308507b5fe3da8800c33dc4ce426156/work"
      }
    },
    "RootFS": {
      "Type": "layers",
      "Layers": [
        "sha256:1c95c77433e8d7bf0f519c9d8c9ca967e2603f0defbf379130d9a841cca2e28e",
        "sha256:2bf534399acac9c6b09a0b1d931223808000b04400a749f08187ed9ee435738d",
        "sha256:eb25e0278d41b9ac637d8cb2e391457cf44ce8d2bfe0646d0c9faefc96413f91",
        "sha256:e54bd3566d9ef3e1309a5af6caf8682f32c6ac4d6adfcbd3e601cfee4e2e0e85",
        "sha256:c79435051d529a7b86f5f9fc32e7e2ec401929434e5596f02a2af731f55c9f28",
        "sha256:76e0d7b2d700e6d17924b985703c7b5b84fb39ddcc0a1181b41217c2a11dffc4",
        "sha256:eecdc37df6afd77091641588f9639f63b65e8eb141e56529e00da44419c5bd04",
        "sha256:36e788f2d91a89375df5901f31cca33776f887c00ddfd3cf9f2466fa4cb794d6"
      ]
    }
  }
]

默認(rèn)拉取最新的是3.5.X版本,如果你需要3.4.X版本的,要指定標(biāo)簽

單機(jī)

# 最后那個(gè)是鏡像的ID[root@localhost admin]# docker run -d -p 2181:2181 --name some-zookeeper --restart always 3487af26dee9
d5c6f857cd88c342acf63dd58e838a4cdf912daa6c8c0115091147136e819307
[root@localhost admin]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS                         NAMES
d5c6f857cd88    3487af26dee9    "/docker-entrypoin..."  4 seconds ago    Up 3 seconds    2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp  some-zookeeper
[root@localhost admin]# docker exec -it d5c6f857cd88 bash
root@d5c6f857cd88:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.sh
Connecting to localhost:2181
2019-08-29 07:15:21,623 [myid:] - INFO [main:Environment@109] - Client environment:zookeeper.version=3.5.5-390fe37ea45dee01bf87dc1c042b5e3dcce88653, built on 05/03/2019 12:07 GMT
2019-08-29 07:15:21,679 [myid:] - INFO [main:Environment@109] - Client environment:host.name=d5c6f857cd88
2019-08-29 07:15:21,680 [myid:] - INFO [main:Environment@109] - Client environment:java.version=1.8.0_222
2019-08-29 07:15:21,717 [myid:] - INFO [main:Environment@109] - Client environment:java.vendor=Oracle Corporation
2019-08-29 07:15:21,718 [myid:] - INFO [main:Environment@109] - Client environment:java.home=/usr/local/openjdk-8
2019-08-29 07:15:21,725 [myid:] - INFO [main:Environment@109] - Client environment:java.class.path=/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/classes:/apache-zookeeper-3.5.5-bin/bin/../build/classes:/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/lib/*.jar:/apache-zookeeper-3.5.5-bin/bin/../build/lib/*.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-jute-3.5.5.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-3.5.5.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-log4j12-1.7.25.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-api-1.7.25.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/netty-all-4.1.29.Final.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/log4j-1.2.17.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/json-simple-1.1.1.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jline-2.11.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-util-9.4.17.v20190418.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-servlet-9.4.17.v20190418.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-server-9.4.17.v20190418.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-security-9.4.17.v20190418.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-io-9.4.17.v20190418.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-http-9.4.17.v20190418.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-databind-2.9.8.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-core-2.9.8.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-annotations-2.9.0.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/commons-cli-1.2.jar:/apache-zookeeper-3.5.5-bin/bin/../lib/audience-annotations-0.5.0.jar:/apache-zookeeper-3.5.5-bin/bin/../zookeeper-*.jar:/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/conf:
2019-08-29 07:15:22,108 [myid:] - INFO [main:Environment@109] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2019-08-29 07:15:22,109 [myid:] - INFO [main:Environment@109] - Client environment:java.io.tmpdir=/tmp
2019-08-29 07:15:22,109 [myid:] - INFO [main:Environment@109] - Client environment:java.compiler=<NA>
2019-08-29 07:15:22,109 [myid:] - INFO [main:Environment@109] - Client environment:os.name=Linux
2019-08-29 07:15:22,109 [myid:] - INFO [main:Environment@109] - Client environment:os.arch=amd64
2019-08-29 07:15:22,110 [myid:] - INFO [main:Environment@109] - Client environment:os.version=3.10.0-862.9.1.el7.x86_64
2019-08-29 07:15:22,110 [myid:] - INFO [main:Environment@109] - Client environment:user.name=root
2019-08-29 07:15:22,110 [myid:] - INFO [main:Environment@109] - Client environment:user.home=/root
2019-08-29 07:15:22,110 [myid:] - INFO [main:Environment@109] - Client environment:user.dir=/apache-zookeeper-3.5.5-bin
2019-08-29 07:15:22,118 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.free=11MB
2019-08-29 07:15:22,148 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.max=247MB
2019-08-29 07:15:22,148 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.total=15MB
2019-08-29 07:15:22,206 [myid:] - INFO [main:ZooKeeper@868] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@3b95a09c
2019-08-29 07:15:22,239 [myid:] - INFO [main:X509Util@79] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2019-08-29 07:15:22,285 [myid:] - INFO [main:ClientCnxnSocket@237] - jute.maxbuffer value is 4194304 Bytes
2019-08-29 07:15:22,366 [myid:] - INFO [main:ClientCnxn@1653] - zookeeper.request.timeout value is 0. feature enabled=
Welcome to ZooKeeper!
JLine support is enabled
2019-08-29 07:15:22,563 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1112] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
2019-08-29 07:15:23,443 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@959] - Socket connection established, initiating session, client: /0:0:0:0:0:0:0:1:37198, server: localhost/0:0:0:0:0:0:0:1:2181
2019-08-29 07:15:23,520 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1394] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10001216d990000, negotiated timeout = 30000
 
WATCHER::
 
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 1] quit
 
WATCHER::
 
WatchedEvent state:Closed type:None path:null
2019-08-29 07:15:37,042 [myid:] - INFO [main:ZooKeeper@1422] - Session: 0x10001216d990000 closed
2019-08-29 07:15:37,043 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@524] - EventThread shut down for session: 0x10001216d990000
root@d5c6f857cd88:/apache-zookeeper-3.5.5-bin# exit
exit
[root@localhost admin]#

在外部訪問(192.168.192.128:2181)

集群

環(huán)境:單臺(tái)宿主機(jī)(192.168.192.128),啟動(dòng)三個(gè)zookeeper容器。

這里涉及一個(gè)問題,就是Docker容器之間通信的問題,這個(gè)很重要!

Docker有三種網(wǎng)絡(luò)模式,bridge、host、none,在你創(chuàng)建容器的時(shí)候,不指定--network默認(rèn)是bridge。

bridge:為每一個(gè)容器分配IP,并將容器連接到一個(gè)docker0虛擬網(wǎng)橋,通過docker0網(wǎng)橋與宿主機(jī)通信。也就是說,此模式下,你不能用宿主機(jī)的IP+容器映射端口來進(jìn)行Docker容器之間的通信。

host:容器不會(huì)虛擬自己的網(wǎng)卡,配置自己的IP,而是使用宿主機(jī)的IP和端口。這樣一來,Docker容器之間的通信就可以用宿主機(jī)的IP+容器映射端口

none:無網(wǎng)絡(luò)。

=====================================================

先在本地創(chuàng)建目錄:

[root@localhost admin]# mkdir /usr/local/zookeeper-cluster
[root@localhost admin]# mkdir /usr/local/zookeeper-cluster/node1
[root@localhost admin]# mkdir /usr/local/zookeeper-cluster/node2
[root@localhost admin]# mkdir /usr/local/zookeeper-cluster/node3
[root@localhost admin]# ll /usr/local/zookeeper-cluster/
total 0
drwxr-xr-x. 2 root root 6 Aug 28 23:02 node1
drwxr-xr-x. 2 root root 6 Aug 28 23:02 node2
drwxr-xr-x. 2 root root 6 Aug 28 23:02 node3

然后執(zhí)行命令啟動(dòng)

docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper_node1 --privileged --restart always \

-v /usr/local/zookeeper-cluster/node1/volumes/data:/data \

-v /usr/local/zookeeper-cluster/node1/volumes/datalog:/datalog \

-v /usr/local/zookeeper-cluster/node1/volumes/logs:/logs \

-e ZOO_MY_ID=1 \

-e "ZOO_SERVERS=server.1=192.168.192.128:2888:3888;2181 server.2=192.168.192.128:2889:3889;2182 server.3=192.168.192.128:2890:3890;2183" 3487af26dee9

docker run -d -p 2182:2181 -p 2889:2888 -p 3889:3888 --name zookeeper_node2 --privileged --restart always \

-v /usr/local/zookeeper-cluster/node2/volumes/data:/data \

-v /usr/local/zookeeper-cluster/node2/volumes/datalog:/datalog \

-v /usr/local/zookeeper-cluster/node2/volumes/logs:/logs \

-e ZOO_MY_ID=2 \

-e "ZOO_SERVERS=server.1=192.168.192.128:2888:3888;2181 server.2=192.168.192.128:2889:3889;2182 server.3=192.168.192.128:2890:3890;2183" 3487af26dee9

docker run -d -p 2183:2181 -p 2890:2888 -p 3890:3888 --name zookeeper_node3 --privileged --restart always \

-v /usr/local/zookeeper-cluster/node3/volumes/data:/data \

-v /usr/local/zookeeper-cluster/node3/volumes/datalog:/datalog \

-v /usr/local/zookeeper-cluster/node3/volumes/logs:/logs \

-e ZOO_MY_ID=3 \

-e "ZOO_SERVERS=server.1=192.168.192.128:2888:3888;2181 server.2=192.168.192.128:2889:3889;2182 server.3=192.168.192.128:2890:3890;2183" 3487af26dee9

【坑】

乍一看,沒什么問題啊,首先映射端口到宿主機(jī),然后三個(gè)zookeeper之間的訪問地址則是宿主機(jī)IP:映射端口,沒毛病啊;

看我前面講的網(wǎng)絡(luò)模式就能看出問題,ZOO_SERVERS里面的IP有問題,犯這個(gè)錯(cuò)誤都是不了解Docker的網(wǎng)絡(luò)模式的。什么錯(cuò)誤往下看。

關(guān)于ZOO_SERVERS

什么意思呢,3.5.0開始,不應(yīng)該再使用clientPort和clientPortAddress配置參數(shù)。相反,這些信息現(xiàn)在是server關(guān)鍵字規(guī)范的一部分。

端口映射三個(gè)容器不一樣,比如2181/2182/2183,因?yàn)槭且慌_(tái)宿主機(jī)嘛,端口不能沖突,如果你不在同一臺(tái)機(jī)器,就不用修改端口。

最后的那個(gè)參數(shù)是鏡像ID,也可以是鏡像名稱:TAG。

--privileged=true參數(shù)是為了解決【chown: changing ownership of '/data': Permission denied】,也可以省略true

執(zhí)行結(jié)果:

[root@localhost admin]# docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper_node1 --privileged --restart always \

> -v /usr/local/zookeeper-cluster/node1/volumes/data:/data \

> -v /usr/local/zookeeper-cluster/node1/volumes/datalog:/datalog \

> -v /usr/local/zookeeper-cluster/node1/volumes/logs:/logs \

> -e ZOO_MY_ID=1 \

> -e "ZOO_SERVERS=server.1=192.168.192.128:2888:3888;2181 server.2=192.168.192.128:2889:3889;2182 server.3=192.168.192.128:2890:3890;2183" 3487af26dee9
4bfa6bbeb936037e178a577e5efbd06d4a963e91d67274413b933fd189917776
[root@localhost admin]# docker run -d -p 2182:2181 -p 2889:2888 -p 3889:3888 --name zookeeper_node2 --privileged --restart always \

> -v /usr/local/zookeeper-cluster/node2/volumes/data:/data \

> -v /usr/local/zookeeper-cluster/node2/volumes/datalog:/datalog \

> -v /usr/local/zookeeper-cluster/node2/volumes/logs:/logs \

> -e ZOO_MY_ID=2 \

> -e "ZOO_SERVERS=server.1=192.168.192.128:2888:3888;2181 server.2=192.168.192.128:2889:3889;2182 server.3=192.168.192.128:2890:3890;2183" 3487af26dee9
dbb7f1f323a09869d043152a4995e73bad5f615fd81bf11143fd1c28180f9869
[root@localhost admin]# docker run -d -p 2183:2181 -p 2890:2888 -p 3890:3888 --name zookeeper_node3 --privileged --restart always \

> -v /usr/local/zookeeper-cluster/node3/volumes/data:/data \

> -v /usr/local/zookeeper-cluster/node3/volumes/datalog:/datalog \

> -v /usr/local/zookeeper-cluster/node3/volumes/logs:/logs \

> -e ZOO_MY_ID=3 \

> -e "ZOO_SERVERS=server.1=192.168.192.128:2888:3888;2181 server.2=192.168.192.128:2889:3889;2182 server.3=192.168.192.128:2890:3890;2183" 3487af26dee9
6dabae1d92f0e861cc7515c014c293f80075c2762b254fc56312a6d3b450a919
[root@localhost admin]#

查看啟動(dòng)的容器

[root@localhost admin]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS                                       NAMES
6dabae1d92f0    3487af26dee9    "/docker-entrypoin..."  31 seconds ago   Up 29 seconds    8080/tcp, 0.0.0.0:2183->2181/tcp, 0.0.0.0:2890->2888/tcp, 0.0.0.0:3890->3888/tcp  zookeeper_node3
dbb7f1f323a0    3487af26dee9    "/docker-entrypoin..."  36 seconds ago   Up 35 seconds    8080/tcp, 0.0.0.0:2182->2181/tcp, 0.0.0.0:2889->2888/tcp, 0.0.0.0:3889->3888/tcp  zookeeper_node2
4bfa6bbeb936    3487af26dee9    "/docker-entrypoin..."  46 seconds ago   Up 45 seconds    0.0.0.0:2181->2181/tcp, 0.0.0.0:2888->2888/tcp, 0.0.0.0:3888->3888/tcp, 8080/tcp  zookeeper_node1
[root@localhost admin]# 

不是說有錯(cuò)誤嗎?怎么還啟動(dòng)成功了??我們來看下節(jié)點(diǎn)1的啟動(dòng)日志

[root@localhost admin]# docker logs -f 4bfa6bbeb936
ZooKeeper JMX enabled by default

...

2019-08-29 09:20:22,665 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@677] - Cannot open channel to 2 at election address /192.168.192.128:3889
java.net.ConnectException: Connection refused (Connection refused)
  at java.net.PlainSocketImpl.socketConnect(Native Method)
  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
  at java.net.Socket.connect(Socket.java:589)
  at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:648)
  at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:705)
  at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:618)
  at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:477)
  at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:456)
  at java.lang.Thread.run(Thread.java:748)
2019-08-29 09:20:22,666 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@677] - Cannot open channel to 3 at election address /192.168.192.128:3890
java.net.ConnectException: Connection refused (Connection refused)
  at java.net.PlainSocketImpl.socketConnect(Native Method)
  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
  at java.net.Socket.connect(Socket.java:589)
  at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:648)
  at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:705)
  at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:618)
  at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:477)
  at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:456)
  at java.lang.Thread.run(Thread.java:748)

連接不上2 和 3,為什么呢,因?yàn)樵谀J(rèn)的Docker網(wǎng)絡(luò)模式下,通過宿主機(jī)的IP+映射端口,根本找不到啊!他們有自己的IP啊!如下:

[root@localhost admin]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS                                       NAMES
6dabae1d92f0    3487af26dee9    "/docker-entrypoin..."  5 minutes ago    Up 5 minutes    8080/tcp, 0.0.0.0:2183->2181/tcp, 0.0.0.0:2890->2888/tcp, 0.0.0.0:3890->3888/tcp  zookeeper_node3
dbb7f1f323a0    3487af26dee9    "/docker-entrypoin..."  6 minutes ago    Up 6 minutes    8080/tcp, 0.0.0.0:2182->2181/tcp, 0.0.0.0:2889->2888/tcp, 0.0.0.0:3889->3888/tcp  zookeeper_node2
4bfa6bbeb936    3487af26dee9    "/docker-entrypoin..."  6 minutes ago    Up 6 minutes    0.0.0.0:2181->2181/tcp, 0.0.0.0:2888->2888/tcp, 0.0.0.0:3888->3888/tcp, 8080/tcp  zookeeper_node1


[root@localhost admin]# docker inspect 4bfa6bbeb936
      "Networks": {
        "bridge": {
          "IPAMConfig": null,
          "Links": null,
          "Aliases": null,
          "NetworkID": "5fc1ce4362afe3d34fdf260ab0174c36fe4b7daf2189702eae48101a755079f3",
          "EndpointID": "368237e4c903cc663111f1fe33ac4626a9100fb5a22aec85f5eccbc6968a1631",
          "Gateway": "172.17.0.1",
          "IPAddress": "172.17.0.2",
          "IPPrefixLen": 16,
          "IPv6Gateway": "",
          "GlobalIPv6Address": "",
          "GlobalIPv6PrefixLen": 0,
          "MacAddress": "02:42:ac:11:00:02"
        }
      }
    }
  }
]

[root@localhost admin]# docker inspect dbb7f1f323a0
      "Networks": {
        "bridge": {
          "IPAMConfig": null,
          "Links": null,
          "Aliases": null,
          "NetworkID": "5fc1ce4362afe3d34fdf260ab0174c36fe4b7daf2189702eae48101a755079f3",
          "EndpointID": "8a9734044a566d5ddcd7cbbf6661abb2730742f7c73bd8733ede9ed8ef106659",
          "Gateway": "172.17.0.1",
          "IPAddress": "172.17.0.3",
          "IPPrefixLen": 16,
          "IPv6Gateway": "",
          "GlobalIPv6Address": "",
          "GlobalIPv6PrefixLen": 0,
          "MacAddress": "02:42:ac:11:00:03"
        }
      }
    }
  }
]

[root@localhost admin]# docker inspect 6dabae1d92f0
      "Networks": {
        "bridge": {
          "IPAMConfig": null,
          "Links": null,
          "Aliases": null,
          "NetworkID": "5fc1ce4362afe3d34fdf260ab0174c36fe4b7daf2189702eae48101a755079f3",
          "EndpointID": "b10329b9940a07aacb016d8d136511ec388de02bf3bd0e0b50f7f4cbb7f138ec",
          "Gateway": "172.17.0.1",
          "IPAddress": "172.17.0.4",
          "IPPrefixLen": 16,
          "IPv6Gateway": "",
          "GlobalIPv6Address": "",
          "GlobalIPv6PrefixLen": 0,
          "MacAddress": "02:42:ac:11:00:04"
        }
      }
    }
  }
]

node1---172.17.0.2
node2---172.17.0.3
node3---172.17.0.4

既然我們知道了它有自己的IP,那又出現(xiàn)另一個(gè)問題了,就是它的ip是動(dòng)態(tài)的,啟動(dòng)之前我們無法得知。有個(gè)解決辦法就是創(chuàng)建自己的bridge網(wǎng)絡(luò),然后創(chuàng)建容器的時(shí)候指定ip。

【正確方式開始】

[root@localhost admin]# docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zoonet
8257c501652a214d27efdf5ef71ff38bfe222c3a2a7898be24b8df9db1fb3b13
[root@localhost admin]# docker network ls
NETWORK ID     NAME        DRIVER       SCOPE
5fc1ce4362af    bridge       bridge       local
6aa33e21444e    host        host        local
20e563b93ce9    none        null        local
8257c501652a    zoonet       bridge       local
[root@localhost admin]# docker network inspect 8257c501652a
[
  {
    "Name": "zoonet",
    "Id": "8257c501652a214d27efdf5ef71ff38bfe222c3a2a7898be24b8df9db1fb3b13",
    "Created": "2019-08-29T06:08:01.442601483-04:00",
    "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,
    "Containers": {},
    "Options": {},
    "Labels": {}
  }
]

然后我們修改一下zookeeper容器的創(chuàng)建命令。

docker run -d -p 2181:2181 --name zookeeper_node1 --privileged --restart always --network zoonet --ip 172.18.0.2 \

-v /usr/local/zookeeper-cluster/node1/volumes/data:/data \

-v /usr/local/zookeeper-cluster/node1/volumes/datalog:/datalog \

-v /usr/local/zookeeper-cluster/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" 3487af26dee9

docker run -d -p 2182:2181 --name zookeeper_node2 --privileged --restart always --network zoonet --ip 172.18.0.3 \

-v /usr/local/zookeeper-cluster/node2/volumes/data:/data \

-v /usr/local/zookeeper-cluster/node2/volumes/datalog:/datalog \

-v /usr/local/zookeeper-cluster/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" 3487af26dee9

docker run -d -p 2183:2181 --name zookeeper_node3 --privileged --restart always --network zoonet --ip 172.18.0.4 \

-v /usr/local/zookeeper-cluster/node3/volumes/data:/data \

-v /usr/local/zookeeper-cluster/node3/volumes/datalog:/datalog \

-v /usr/local/zookeeper-cluster/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" 3487af26dee9

1. 由于2888 、3888不需要暴露,就不映射了;

2. 指定自己的網(wǎng)絡(luò),并指定IP;

3. 每個(gè)容器之間環(huán)境是隔離的,所以容器內(nèi)所用的端口一樣:2181/2888/3888

運(yùn)行結(jié)果:

[root@localhost admin]# docker run -d -p 2181:2181 --name zookeeper_node1 --privileged --restart always --network zoonet --ip 172.18.0.2 \

> -v /usr/local/zookeeper-cluster/node1/volumes/data:/data \

> -v /usr/local/zookeeper-cluster/node1/volumes/datalog:/datalog \

> -v /usr/local/zookeeper-cluster/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" 3487af26dee9
50c07cf11fab2d3b4da6d8ce48d8ed4a7beaab7d51dd542b8309f781e9920c36
[root@localhost admin]# docker run -d -p 2182:2181 --name zookeeper_node2 --privileged --restart always --network zoonet --ip 172.18.0.3 \

> -v /usr/local/zookeeper-cluster/node2/volumes/data:/data \

> -v /usr/local/zookeeper-cluster/node2/volumes/datalog:/datalog \

> -v /usr/local/zookeeper-cluster/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" 3487af26dee9
649a4dbfb694504acfe4b8e11b990877964477bb41f8a230bd191cba7d20996f
[root@localhost admin]# docker run -d -p 2183:2181 --name zookeeper_node3 --privileged --restart always --network zoonet --ip 172.18.0.4 \

> -v /usr/local/zookeeper-cluster/node3/volumes/data:/data \

> -v /usr/local/zookeeper-cluster/node3/volumes/datalog:/datalog \

> -v /usr/local/zookeeper-cluster/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" 3487af26dee9
c8bc1b9ae9adf86e9c7f6a3264f883206c6d0e4f6093db3200de80ef39f57160
[root@localhost admin]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS                         NAMES
c8bc1b9ae9ad    3487af26dee9    "/docker-entrypoin..."  17 seconds ago   Up 16 seconds    2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2183->2181/tcp  zookeeper_node3
649a4dbfb694    3487af26dee9    "/docker-entrypoin..."  22 seconds ago   Up 21 seconds    2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2182->2181/tcp  zookeeper_node2
50c07cf11fab    3487af26dee9    "/docker-entrypoin..."  33 seconds ago   Up 32 seconds    2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp  zookeeper_node1
[root@localhost admin]#

進(jìn)入容器內(nèi)部驗(yàn)證一下:

[root@localhost admin]# docker exec -it 50c07cf11fab bash
root@50c07cf11fab:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
root@50c07cf11fab:/apache-zookeeper-3.5.5-bin# exit
exit
[root@localhost admin]# docker exec -it 649a4dbfb694 bash
root@649a4dbfb694:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
root@649a4dbfb694:/apache-zookeeper-3.5.5-bin# exit
exit
[root@localhost admin]# docker exec -it c8bc1b9ae9ad bash
root@c8bc1b9ae9ad:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
root@c8bc1b9ae9ad:/apache-zookeeper-3.5.5-bin# exit
exit
[root@localhost admin]#

在驗(yàn)證一下創(chuàng)建節(jié)點(diǎn)

開啟防火墻,以供外部訪問

firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2182/tcp --permanent
firewall-cmd --zone=public --add-port=2183/tcp --permanent
systemctl restart firewalld
firewall-cmd --list-all

在本地,我用zookeeper的客戶端連接虛擬機(jī)上的集群:

可以看到連接成功!

集群安裝方式二:通過docker stack deploy或docker-compose安裝

這里用docker-compose。先安裝docker-compose

[root@localhost admin]# curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 % Total  % Received % Xferd Average Speed  Time  Time   Time Current
                 Dload Upload  Total  Spent  Left Speed
100  617  0  617  0   0  145   0 --:--:-- 0:00:04 --:--:--  145
100 15.4M 100 15.4M  0   0  131k   0 0:02:00 0:02:00 --:--:-- 136k
[root@localhost admin]# chmod +x /usr/local/bin/docker-compose

檢查版本(驗(yàn)證是否安裝成功)

[root@localhost admin]# docker-compose --version
docker-compose version 1.24.1, build 4667896b

卸載的話

rm /usr/local/bin/docker-compose

開始配置,新建三個(gè)掛載目錄

[root@localhost admin]# mkdir /usr/local/zookeeper-cluster/node4
[root@localhost admin]# mkdir /usr/local/zookeeper-cluster/node5
[root@localhost admin]# mkdir /usr/local/zookeeper-cluster/node6

新建任意目錄,然后在里面新建一個(gè)文件

[root@localhost admin]# mkdir DockerComposeFolder
[root@localhost admin]# cd DockerComposeFolder/
[root@localhost DockerComposeFolder]# vim docker-compose.yml

文件內(nèi)容如下:(自定義網(wǎng)絡(luò)見上面)

version: '3.1'

services:
 zoo1:
  image: zookeeper
  restart: always
  privileged: true
  hostname: zoo1
  ports:
   - 2181:2181
  volumes: # 掛載數(shù)據(jù)
   - /usr/local/zookeeper-cluster/node4/data:/data
   - /usr/local/zookeeper-cluster/node4/datalog:/datalog
  environment:
   ZOO_MY_ID: 4
   ZOO_SERVERS: server.4=0.0.0.0:2888:3888;2181 server.5=zoo2:2888:3888;2181 server.6=zoo3:2888:3888;2181
  networks:
   default:
    ipv4_address: 172.18.0.14

 zoo2:
  image: zookeeper
  restart: always
  privileged: true
  hostname: zoo2
  ports:
   - 2182:2181
  volumes: # 掛載數(shù)據(jù)
   - /usr/local/zookeeper-cluster/node5/data:/data
   - /usr/local/zookeeper-cluster/node5/datalog:/datalog
  environment:
   ZOO_MY_ID: 5
   ZOO_SERVERS: server.4=zoo1:2888:3888;2181 server.5=0.0.0.0:2888:3888;2181 server.6=zoo3:2888:3888;2181
  networks:
   default:
    ipv4_address: 172.18.0.15

 zoo3:
  image: zookeeper
  restart: always
  privileged: true
  hostname: zoo3
  ports:
   - 2183:2181
  volumes: # 掛載數(shù)據(jù)
   - /usr/local/zookeeper-cluster/node6/data:/data
   - /usr/local/zookeeper-cluster/node6/datalog:/datalog
  environment:
   ZOO_MY_ID: 6
   ZOO_SERVERS: server.4=zoo1:2888:3888;2181 server.5=zoo2:2888:3888;2181 server.6=0.0.0.0:2888:3888;2181
  networks:
   default:
    ipv4_address: 172.18.0.16

networks: # 自定義網(wǎng)絡(luò)
 default:
  external:
   name: zoonet

注意yaml文件里不能有tab,只能有空格。

關(guān)于version與Docker版本的關(guān)系如下:

然后執(zhí)行(-d后臺(tái)啟動(dòng))

docker-compose -f docker-compose.yml up -d

查看已啟動(dòng)的容器

[root@localhost DockerComposeFolder]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS                         NAMES
a2c14814037d    zookeeper      "/docker-entrypoin..."  6 minutes ago    Up About a minute  2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2183->2181/tcp  dockercomposefolder_zoo3_1
50310229b216    zookeeper      "/docker-entrypoin..."  6 minutes ago    Up About a minute  2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp  dockercomposefolder_zoo1_1
475d8a9e2d08    zookeeper      "/docker-entrypoin..."  6 minutes ago    Up About a minute  2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2182->2181/tcp  dockercomposefolder_zoo2_1

進(jìn)入一個(gè)容器

[root@localhost DockerComposeFolder]# docker exec -it a2c14814037d bash
root@zoo3:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.sh
Connecting to localhost:2181

....

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] 
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 2] create /hi
Created /hi
[zk: localhost:2181(CONNECTED) 3] ls /
[hi, zookeeper]

進(jìn)入另一個(gè)容器

[root@localhost DockerComposeFolder]# docker exec -it 50310229b216 bash
root@zoo1:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.sh
Connecting to localhost:2181

...

WatchedEvent state:SyncConnected type:None path:null

[zk: localhost:2181(CONNECTED) 0] ls /
[hi, zookeeper]

本地客戶端連接集群:

zkCli.cmd -server 192.168.192.128:2181,192.168.192.128:2182,192.168.192.128:2183

查看

停止所有活動(dòng)容器

刪除所有已停止的容器

更多docker-compose的命令:

[root@localhost DockerComposeFolder]# docker-compose --help
Define and run multi-container applications with Docker.

Usage:
 docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
 docker-compose -h|--help

Options:
 -f, --file FILE       Specify an alternate compose file
               (default: docker-compose.yml)
 -p, --project-name NAME   Specify an alternate project name
               (default: directory name)
 --verbose          Show more output
 --log-level LEVEL      Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
 --no-ansi          Do not print ANSI control characters
 -v, --version        Print version and exit
 -H, --host HOST       Daemon socket to connect to

 --tls            Use TLS; implied by --tlsverify
 --tlscacert CA_PATH     Trust certs signed only by this CA
 --tlscert CLIENT_CERT_PATH Path to TLS certificate file
 --tlskey TLS_KEY_PATH    Path to TLS key file
 --tlsverify         Use TLS and verify the remote
 --skip-hostname-check    Don't check the daemon's hostname against the
               name specified in the client certificate
 --project-directory PATH  Specify an alternate working directory
               (default: the path of the Compose file)
 --compatibility       If set, Compose will attempt to convert keys
               in v3 files to their non-Swarm equivalent

Commands:
 build       Build or rebuild services
 bundle       Generate a Docker bundle from the Compose file
 config       Validate and view the Compose file
 create       Create services
 down        Stop and remove containers, networks, images, and volumes
 events       Receive real time events from containers
 exec        Execute a command in a running container
 help        Get help on a command
 images       List images
 kill        Kill containers
 logs        View output from containers
 pause       Pause services
 port        Print the public port for a port binding
 ps         List containers
 pull        Pull service images
 push        Push service images
 restart      Restart services
 rm         Remove stopped containers
 run        Run a one-off command
 scale       Set number of containers for a service
 start       Start services
 stop        Stop services
 top        Display the running processes
 unpause      Unpause services
 up         Create and start containers
 version      Show the Docker-Compose version information

到此這篇關(guān)于Docker下安裝zookeeper(單機(jī)和集群)的文章就介紹到這了,更多相關(guān)Docker安裝zookeeper內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:克拉瑪依 棗莊 96 鹽城 日照 常州 東莞 渭南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Docker下安裝zookeeper(單機(jī)和集群)》,本文關(guān)鍵詞  Docker,下,安裝,zookeeper,單機(jī),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Docker下安裝zookeeper(單機(jī)和集群)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Docker下安裝zookeeper(單機(jī)和集群)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    一区二区三区国产精华| 不卡av电影在线播放| 中国xxxx性xxxx产国| 99精品一区二区三区无码吞精 | 夜夜嗨av一区二区三区四季av | 视频免费在线观看| 欧美日韩视频在线第一区| 亚洲人成网站在线| jvid福利写真一区二区三区| 亚洲国产精品免费在线观看| 中文字幕欧美日韩一区| 丰满少妇久久久久久久| 91精品国产闺蜜国产在线闺蜜| 欧美激情自拍偷拍| 成人在线视频一区| 色综合天天综合在线视频| 亚洲日本va午夜在线影院| 北条麻妃一区二区三区| 色8久久人人97超碰香蕉987| 亚洲精品视频在线观看网站| 亚洲少妇一区二区| 欧美一级精品在线| 久久精品国产亚洲aⅴ| 91视频免费在观看| 欧美经典一区二区| 成人97人人超碰人人99| 色美美综合视频| 亚洲午夜久久久| 国产精品无码一区二区三区免费| 精品国产一区久久| 国产美女一区二区| 色综合久久综合| 亚洲影院理伦片| 中文字幕第3页| 久久综合999| 成人综合婷婷国产精品久久蜜臀| 91国产成人在线| 亚洲成av人片www| av男人的天堂av| 欧美国产日产图区| 97精品超碰一区二区三区| 欧美男男青年gay1069videost| 免费成人在线网站| 免费高清在线观看电视| 亚洲资源中文字幕| 亚洲久久久久久久| 亚洲色图视频网站| 国产一级二级在线观看| 国产亚洲精品久| 性生活在线视频| 精品va天堂亚洲国产| 成人午夜视频网站| 亚洲高清免费视频| 亚洲国产综合av| 日韩精品中午字幕| 成人夜色视频网站在线观看| 欧美日韩免费一区二区三区视频| 全部av―极品视觉盛宴亚洲| 91大神福利视频| 亚洲资源在线观看| 四虎成人免费影院| 亚洲精选视频在线| 欧美人妻一区二区三区| 最新中文字幕一区二区三区| 五月婷婷综合在线观看| 国产精品成人一区二区艾草| 久久久久亚洲AV成人无码国产| 国产三级一区二区三区| 大尺度在线观看| 中文字幕第一区第二区| 国产人妻黑人一区二区三区| 中文av一区二区| 国产人妻黑人一区二区三区| 国产精品无人区| 性欧美丰满熟妇xxxx性久久久| 亚洲国产成人午夜在线一区| 免费成人蒂法网站| 亚洲私人影院在线观看| av女人的天堂| 亚洲影院免费观看| 一区二区三区影视| 青青草97国产精品免费观看无弹窗版 | 欧美一区二区三区免费在线看| 国产夫妻精品视频| 日韩三级高清在线| av地址在线观看| 国产精品色哟哟| 欧美精品一二三四| 久久99久久精品欧美| 在线视频一区二区三区| 极品销魂美女一区二区三区| 欧美福利电影网| jlzzjlzz亚洲女人18| 久久精品欧美一区二区三区麻豆 | 日韩毛片在线免费观看| 亚洲精品国产91| 午夜电影一区二区| 91成人在线精品| 成人一区在线观看| 久久老女人爱爱| 粉嫩av蜜桃av蜜臀av| 亚洲五月六月丁香激情| 色先锋资源久久综合| 国产麻豆欧美日韩一区| 欧美不卡123| 双性尿奴穿贞c带憋尿| 亚洲图片欧美视频| 欧美色区777第一页| 成人动漫视频在线| 国产精品欧美一级免费| 欧美成人另类视频| 极品少妇xxxx精品少妇| 欧美大尺度电影在线| 国产精品九九视频| 亚洲国产精品视频| 欧美午夜精品久久久| 99久久国产综合精品色伊| 国产精品视频线看| 小泽玛利亚一区二区免费| 国产久卡久卡久卡久卡视频精品| 欧美tk丨vk视频| 人妻一区二区视频| 另类小说视频一区二区| 精品久久久久香蕉网| 国产精品无码一区二区三区| 奇米一区二区三区av| 欧美一级xxx| 爱爱的免费视频| 麻豆精品视频在线观看| 欧美成人在线直播| 一区二区三区伦理片| 国产真实乱偷精品视频免| 久久久久久99久久久精品网站| 欧洲av一区二区三区| 久久疯狂做爰流白浆xx| 久久免费国产精品| 懂色av蜜臀av粉嫩av永久| 国产成人亚洲综合a∨婷婷图片 | 豆国产96在线|亚洲| 亚洲国产精品黑人久久久| 亚洲熟女毛茸茸| 成人午夜激情影院| 亚洲精品网站在线观看| 欧美精品在线观看播放| 丰满大乳奶做爰ⅹxx视频| 蜜桃av一区二区三区电影| 欧美精品一区二区三区高清aⅴ | 天堂蜜桃91精品| 日韩一级片在线播放| 娇妻被老王脔到高潮失禁视频| 国产毛片精品一区| 亚洲天堂av一区| 欧美巨大另类极品videosbest| 亚洲国产综合视频| 国产一区在线观看视频| 国产精品素人视频| 91高清视频免费看| av黄色一级片| 激情小说亚洲一区| 国产精品国产自产拍高清av| 欧美午夜免费电影| 欧美狂猛xxxxx乱大交3| 国产酒店精品激情| 亚洲精品国产无天堂网2021| 91精品欧美久久久久久动漫 | 日韩影视精彩在线| 久久久久久久久免费| 色综合一个色综合| 亚洲欧美在线不卡| 国产91在线|亚洲| 亚洲综合激情小说| 久久综合一区二区| 日韩视频中文字幕在线观看| 亚洲精品乱码久久久久久蜜桃欧美| 美女精品一区二区| 日韩美女久久久| 欧美电影免费观看高清完整版在线 | 在线观看国产日韩| 人妻大战黑人白浆狂泄| 成人精品小蝌蚪| 日韩国产在线一| 国产精品萝li| 日韩欧美一级片| 在线观看成人毛片| 久久偷拍免费视频| 成人免费电影视频| 日本美女视频一区二区| 国产精品区一区二区三区| 9191久久久久久久久久久| а天堂中文在线资源| 黄色av网址在线观看| 丁香婷婷综合网| 日韩电影在线一区二区| 国产精品灌醉下药二区| 日韩一区和二区| 色久优优欧美色久优优| 免费看的黄色网| 免费不卡的av| 北条麻妃一区二区三区| 精品一区二区三区免费|