成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

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

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

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

啟動(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]#

在外部訪(fǎng)問(wèn)(192.168.192.128:2181)

集群

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

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

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

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

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

none:無(wú)網(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

【坑】

乍一看,沒(méi)什么問(wèn)題啊,首先映射端口到宿主機(jī),然后三個(gè)zookeeper之間的訪(fǎng)問(wèn)地址則是宿主機(jī)IP:映射端口,沒(méi)毛病?。?/p>

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

關(guān)于ZOO_SERVERS

什么意思呢,3.5.0開(kāi)始,不應(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,也可以是鏡像名稱(chēng):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]# 

不是說(shuō)有錯(cuò)誤嗎?怎么還啟動(dòng)成功了??我們來(lái)看下節(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ò)模式下,通過(guò)宿主機(jī)的IP+映射端口,根本找不到?。∷麄冇凶约旱腎P?。∪缦拢?/p>

[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è)問(wèn)題了,就是它的ip是動(dòng)態(tài)的,啟動(dòng)之前我們無(wú)法得知。有個(gè)解決辦法就是創(chuàng)建自己的bridge網(wǎng)絡(luò),然后創(chuàng)建容器的時(shí)候指定ip。

【正確方式開(kāi)始】

[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)

開(kāi)啟防火墻,以供外部訪(fǎng)問(wè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的客戶(hù)端連接虛擬機(jī)上的集群:

可以看到連接成功!

集群安裝方式二:通過(guò)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

卸載的話(huà)

rm /usr/local/bin/docker-compose

開(kāi)始配置,新建三個(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ò)見(jiàn)上面)

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]

本地客戶(hù)端連接集群:

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)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Docker下安裝zookeeper(單機(jī)和集群)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Docker下安裝zookeeper(單機(jī)和集群)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩1区在线| 国产视频精品免费| 欧美巨大xxxx做受沙滩| 日韩毛片无码永久免费看| 可以在线观看的黄色网址| 国内精品久久久久国产盗摄免费观看完整版| 欧美成人精品一区二区免费看片| 一区二区三区不卡在线| 西野翔中文久久精品字幕| 精品视频一二三区| 亚洲欧美日韩在线不卡| 国产香蕉视频在线| 成人午夜视频免费看| 国产在线拍揄自揄拍| 成年人视频软件| 99在线精品免费视频九九视| 99免在线观看免费视频高清| 欧美一级免费在线观看| 亚洲一区二区三区中文字幕| 超碰97在线资源| 韩日av一区二区| 美女三级福利视频| 中文字幕日本欧美| 四虎影视最新网站入口在线观看| 国产麻豆xxxvideo实拍| 日本五码在线| 国产成人ay| 草民电影神马电影一区二区| 日韩亚洲欧美成人| 国产精品色综合| 男女污污视频网站| 亚洲精品国产免费| 亚洲欧美日韩久久| 欧美日韩极品在线观看一区| 国产麻豆日韩欧美久久| 国产在线视频2019最新视频| 极品少妇xxxx精品少妇| 九九综合九九| 日本高清不卡三区| 欧美插天视频在线播放| 国产婷婷色综合av蜜臀av| 日韩一级免费毛片| 91小仙女jk白丝袜呻吟| 欧美体内she精高潮| 国产精品video| 国产精品久久久久77777丨| 91tv亚洲精品香蕉国产一区7ujn| 中文字幕视频在线免费观看| 欧美自拍大量在线观看| 一道本无吗dⅴd在线播放一区| 香蕉久久a毛片| jizz国产| 99久久国产综合精品色伊| 欧美理论电影在线| 91青青国产在线观看精品| 欧美一级黑人aaaaaaa做受| av电影天堂一区二区在线观看| 日韩亚洲欧美视频| 丰满人妻妇伦又伦精品国产| 中文视频一区视频二区视频三区| 成人性生交大片免费观看嘿嘿视频| 日韩av在线天堂| 中文字幕在线久热精品| 国产乱码在线| 日本亚洲色大成网站www久久| 九色综合婷婷综合| 精品中文字幕在线| 手机看片久久| 免费99热在线观看| 亚洲综合免费观看高清完整版| 天天av综合网| 黄色免费网站观看| 亚洲无码久久久久| 秋霞国产午夜精品免费视频| 九色在线网站| 色综合久久久久久久久五月| 久久久www成人免费毛片麻豆| 精品日韩中文字幕| 欧美h视频在线观看| 一本色道久久综合狠狠躁篇怎么玩| 精品福利在线看| 免费在线高清av| 免费黄网站欧美| 精品播放一区二区| 国产亚洲天堂网| 日本精品va在线观看| 免费观看一区二区三区| 国产天堂在线| 综合色中文字幕| 亚洲欧美在线综合| 91日本在线观看| 国产精品久久久久久久久图文区| 免费高清视频精品| 懂色av蜜桃av| 超碰一区二区| 激情无码人妻又粗又大| 99蜜桃臀久久久欧美精品网站| 久久精品国产第一区二区三区| 国产乱淫av麻豆国产免费| 欧美区二区三区| 日韩国产精品一区二区| 综合久久一本| 国产精品久久久久野外| 欧美激情综合| 亚洲精品一区二区三区四区五区| av 日韩 人妻 黑人 综合 无码| 91精品国产免费久久久久久| 精品国产av鲁一鲁一区| 五月婷婷狠狠操| 亚洲激精日韩激精欧美精品| 亚洲激情男女视频| 一个人看的www在线免费观看| 国产精品免费无遮挡无码永久视频| 狠狠色狠狠色综合人人| 国精产品一区二区| 国产麻豆午夜三级精品| 中文在线观看免费| 午夜激情影院| 26uuu成人网一区二区三区| 日韩av在线资源| 精品国产乱码久久久久久1区2区| 在线播放av片| 国产女人在线观看| 91精品国产高清91久久久久久| 国产精品亚洲综合一区在线观看| 青青草免费在线视频观看| 无人码人妻一区二区三区免费| 不卡一卡二卡三乱码免费网站| 成品网站w灬+源码1688网页| 欧美日韩专区在线| 日韩欧美精品电影| 亚洲精品成人久久电影| 国产av自拍一区| 国产99亚洲| 国产视频一区三区| 四虎免费av| 99电影网电视剧在线观看| 精品亚洲综合| 青草av.久久免费一区| 国产91亚洲精品一区二区三区| a天堂资源在线| 天天影视欧美综合在线观看| 一卡二卡三卡在线观看| 久久国产剧场电影| 日日狠狠久久偷偷综合色| 日韩激情一区二区| 亚洲国产天堂久久国产91| 黄色网战入口| 欧美性xxxxx极品少妇| 亚洲黄色在线看| 亚洲精品自拍网| 亚洲色图国产| 亚洲一区二区视频在线播放| 欧美变态网站| 女人天堂亚洲aⅴ在线观看| 综合在线影院| 亚洲乱码一区二区| 日韩中文字幕在线观看视频| 周于希免费高清在线观看| 网红女主播少妇精品视频| 欧美日韩亚洲一区二区三区四区| 久久香蕉频线观| 男女精品视频| 一区二区不卡在线观看| 伊人久久大香线蕉综合热线| 韩国xxxx做受gayxxxx| 欧美日韩激情视频一区二区三区| 亚洲成人影音| 国产精品中文字幕欧美| 免费在线一区二区三区| 日本一本二本在线观看| 欧美激情第三页| 久久久精品中文字幕麻豆发布| 国产欧美精品一区二区三区| 欧美另类videosbest视频| 欧美黄色免费网址| 欧美最猛黑人xxxxwww| 精品日韩成人av| 成人在线二区| 亚洲性生活视频在线观看| 国产一区二区三区日韩| 肉色超薄丝袜脚交一区二区| 亚洲理论在线观看| 麻豆精品蜜桃| 国产亚洲色婷婷久久| 欧美中文字幕在线观看| 午夜精品久久久久久久99热浪潮| 久久99九九99精品| 国产精品探花一区二区在线观看| 成人在线观看小视频| 国产情侣小视频| 最近中文字幕mv免费高清在线| vam成人资源在线观看| 久久91亚洲精品中文字幕| 97福利一区二区| 日韩高清一区在线| 久久久精品成人| 国产精品视频网站| 亚洲色欲久久久综合网东京热| 天堂在线观看av| 91亚洲精华国产精华精华液| 一级毛片在线观| 欧美性生活一级片| 一区二区三区在线观看免费| 久久精品日韩| 国产乱国产乱老熟300| 日韩中文字幕免费视频| aa级大片免费在线观看| 欧美性猛交xxxx乱大交hd| 欧美一区二区视频在线观看2022| 国产精品色在线观看| 天堂资源在线亚洲资源| 国产亚洲激情| 亚洲视频久久久| 日韩一区免费观看| 欧美日韩国产综合一区二区三区| 国产精品日韩在线一区| 欧美福利第一页| 国产精华7777777| 97久久久精品综合88久久| 亚洲精品一区二区三区中文字幕| 亚洲人成午夜免电影费观看| 中文字幕久久亚洲| 日韩一级片中文字幕| 亚洲国产va精品久久久不卡综合| 欧美黄色大片在线观看| 色www永久免费视频首页在线| 老司机凹凸av亚洲导航| 日韩精品一区二区久久| 91亚洲一区| 国产一区二区黑人欧美xxxx| 97久久久久久| 亚洲综合在线做性| 久久久久av| 波多视频一区| 黄色片在线观看网站| 欧美性色黄大片| 国产三级欧美三级| 久久99久久98精品免观看软件| 精品免费一区二区三区蜜桃| 国产99久久精品一区二区永久免费| 国产无遮挡又黄又爽免费软件| 婷婷激情成人| 国产69视频在线观看| 色婷婷亚洲mv天堂mv在影片| 91精品91久久久中77777| 国产午夜精品一区理论片飘花| heyzo在线欧美播放| 国产一区二区精品久久99| www.国产在线播放| 无码人妻丰满熟妇区五十路百度| 一个人看的www片免费高清视频| 国产婷婷一区二区三区| 亚洲在线一区二区三区| 在线视频你懂得一区| 你懂的在线看| 国产人成在线观看| 韩国美女久久| 亚洲精品第五页| 免费在线看成人av| 国产综合色在线| 一区二区三区www污污污网站| 国产黄色片在线免费观看| 在线播放一区二区精品产| 天天干天天操天天玩| 日本丰满少妇一区二区三区| 黑森林福利视频导航| 国产亚洲高清在线观看| 日av在线播放| 日本一区二区免费在线观看视频| 久久国产精品久久精品国产| 中国老熟女重囗味hdxx| 精品久久久久久无码国产| 国产精品国产精品国产专区蜜臀ah| 51漫画成人app入口| 色无极影院亚洲| 成人做爰69片免网站| 亚洲а∨天堂久久精品2021| 欧美丰满一区二区免费视频| 免费国产精品视频| 亚洲小说春色综合另类电影| 日本一区二区免费在线| 日韩精品久久久久久久| 麻豆91精品91久久久| 国产十六处破外女视频| 污视频网站观看| 都市激情久久综合| 欧美日韩国产综合一区二区| www.91香蕉视频| 欧美成人h版| 榴莲视频成人app| 日韩av网站在线| 亚洲精品一区二区三区福利| 亚洲图片在区色| 不卡一区二区中文字幕| 日本性视频网| 性鲍视频在线观看| 伊人狠狠色j香婷婷综合| 欧美大片一区二区三区| 免费大片在线观看| 成人精品亚洲| 91精品国产综合久久久久久丝袜| 手机在线理论片| 无码人妻aⅴ一区二区三区有奶水| 国产网站欧美日韩免费精品在线观看| 国产不卡av在线| 欧美激情三级| 婷婷综合电影| 国产亚洲精品久久久久久打不开| 中文字幕精品在线不卡| 91精品国产乱码久久| 亚洲影院一区| 欧美一级免费在线观看| 日本在线观看| 另类国产ts人妖高潮视频| 成人免费视频网站在线看| jizz国产免费| 久久国产精品一区二区三区四区| 国产欧美久久久久| 成人av色网站| 日韩在线免费观看av| 激情视频一区| 精品国产18久久久久久二百| 亚洲一区二区三区影院| 成人在线视频一区二区| 欧美高清视频免费观看| 热99精品只有里视频最新| 亚洲1区在线|