日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:61日期:2024-11-19 17:02:35

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

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

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

下載:

[root@localhost admin]# docker pull zookeeperUsing default tag: latestTrying to pull repository docker.io/library/zookeeper ...latest: Pulling from docker.io/library/zookeeper1ab2bdfe9778: Already exists7aaf9a088d61: Pull complete80a55c9c9fe8: Pull completea0086b0e6eec: Pull complete4165e7457cad: Pull completebcba13bcf3a1: Pull complete41c03a109e47: Pull complete4d5281c6b0d4: Pull completeDigest: sha256:175d6bb1471e1e37a48bfa41a9da047c80fade60fd585eae3a0e08a4ce1d39edStatus: Downloaded newer image for docker.io/zookeeper:latest

查看鏡像詳情

[root@localhost admin]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE192.168.192.128:443/hello-2 latest 0c24558dd388 42 hours ago 660 MB192.168.192.128:443/hello latest a3ba3d430bed 42 hours ago 660 MBdocker.io/nginxlatest 5a3221f0137b 13 days ago 126 MBdocker.io/zookeeper latest 3487af26dee9 13 days ago 225 MBdocker.io/registry latest f32a97de94e1 5 months ago 25.8 MBdocker.io/mongolatest 8bf72137439e 12 months ago 380 MBdocker.io/influxdb latest 34de2bdc2d7f 12 months ago 213 MBdocker.io/centos latest 5182e96772bf 12 months ago 200 MBdocker.io/grafana/grafana latest 3e16e05be9a3 13 months ago 245 MBdocker.io/hello-world latest 2cb0d9787c4d 13 months ago 1.85 kBdocker.io/javalatest 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)簽

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

單機(jī)

# 最后那個(gè)是鏡像的ID[root@localhost admin]# docker run -d -p 2181:2181 --name some-zookeeper --restart always 3487af26dee9d5c6f857cd88c342acf63dd58e838a4cdf912daa6c8c0115091147136e819307[root@localhost admin]# docker psCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMESd5c6f857cd88 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 bashroot@d5c6f857cd88:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.shConnecting to localhost:21812019-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 GMT2019-08-29 07:15:21,679 [myid:] - INFO [main:Environment@109] - Client environment:host.name=d5c6f857cd882019-08-29 07:15:21,680 [myid:] - INFO [main:Environment@109] - Client environment:java.version=1.8.0_2222019-08-29 07:15:21,717 [myid:] - INFO [main:Environment@109] - Client environment:java.vendor=Oracle Corporation2019-08-29 07:15:21,718 [myid:] - INFO [main:Environment@109] - Client environment:java.home=/usr/local/openjdk-82019-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/lib2019-08-29 07:15:22,109 [myid:] - INFO [main:Environment@109] - Client environment:java.io.tmpdir=/tmp2019-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=Linux2019-08-29 07:15:22,109 [myid:] - INFO [main:Environment@109] - Client environment:os.arch=amd642019-08-29 07:15:22,110 [myid:] - INFO [main:Environment@109] - Client environment:os.version=3.10.0-862.9.1.el7.x86_642019-08-29 07:15:22,110 [myid:] - INFO [main:Environment@109] - Client environment:user.name=root2019-08-29 07:15:22,110 [myid:] - INFO [main:Environment@109] - Client environment:user.home=/root2019-08-29 07:15:22,110 [myid:] - INFO [main:Environment@109] - Client environment:user.dir=/apache-zookeeper-3.5.5-bin2019-08-29 07:15:22,118 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.free=11MB2019-08-29 07:15:22,148 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.max=247MB2019-08-29 07:15:22,148 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.total=15MB2019-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@3b95a09c2019-08-29 07:15:22,239 [myid:] - INFO [main:X509Util@79] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation2019-08-29 07:15:22,285 [myid:] - INFO [main:ClientCnxnSocket@237] - jute.maxbuffer value is 4194304 Bytes2019-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 enabled2019-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:21812019-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:null2019-08-29 07:15:37,042 [myid:] - INFO [main:ZooKeeper@1422] - Session: 0x10001216d990000 closed2019-08-29 07:15:37,043 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@524] - EventThread shut down for session: 0x10001216d990000root@d5c6f857cd88:/apache-zookeeper-3.5.5-bin# exitexit[root@localhost admin]#

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

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

集群

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

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

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

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 0drwxr-xr-x. 2 root root 6 Aug 28 23:02 node1drwxr-xr-x. 2 root root 6 Aug 28 23:02 node2drwxr-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' 3487af26dee9docker 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' 3487af26dee9docker 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之間的訪問(wèn)地址則是宿主機(jī)IP:映射端口,沒(méi)毛病啊;

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

關(guān)于ZOO_SERVERS

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

什么意思呢,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' 3487af26dee94bfa6bbeb936037e178a577e5efbd06d4a963e91d67274413b933fd189917776[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' 3487af26dee9dbb7f1f323a09869d043152a4995e73bad5f615fd81bf11143fd1c28180f9869[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' 3487af26dee96dabae1d92f0e861cc7515c014c293f80075c2762b254fc56312a6d3b450a919[root@localhost admin]#

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

[root@localhost admin]# docker psCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMES6dabae1d92f0 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_node3dbb7f1f323a0 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_node24bfa6bbeb936 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 4bfa6bbeb936ZooKeeper 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:3889java.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:3890java.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+映射端口,根本找不到啊!他們有自己的IP啊!如下:

[root@localhost admin]# docker psCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMES6dabae1d92f0 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_node3dbb7f1f323a0 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_node24bfa6bbeb936 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.2node2---172.17.0.3node3---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。

【正確方式開始】

[root@localhost admin]# docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zoonet8257c501652a214d27efdf5ef71ff38bfe222c3a2a7898be24b8df9db1fb3b13[root@localhost admin]# docker network lsNETWORK ID NAMEDRIVER SCOPE5fc1ce4362af bridge bridge local6aa33e21444e hosthostlocal20e563b93ce9 nonenulllocal8257c501652a 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' 3487af26dee9docker 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' 3487af26dee9docker 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

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

運(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' 3487af26dee950c07cf11fab2d3b4da6d8ce48d8ed4a7beaab7d51dd542b8309f781e9920c36[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' 3487af26dee9649a4dbfb694504acfe4b8e11b990877964477bb41f8a230bd191cba7d20996f[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' 3487af26dee9c8bc1b9ae9adf86e9c7f6a3264f883206c6d0e4f6093db3200de80ef39f57160[root@localhost admin]# docker psCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMESc8bc1b9ae9ad 3487af26dee9 '/docker-entrypoin...' 17 seconds ago Up 16 seconds 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2183->2181/tcp zookeeper_node3649a4dbfb694 3487af26dee9 '/docker-entrypoin...' 22 seconds ago Up 21 seconds 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2182->2181/tcp zookeeper_node250c07cf11fab 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 bashroot@50c07cf11fab:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /conf/zoo.cfgClient port found: 2181. Client address: localhost.Mode: followerroot@50c07cf11fab:/apache-zookeeper-3.5.5-bin# exitexit[root@localhost admin]# docker exec -it 649a4dbfb694 bashroot@649a4dbfb694:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /conf/zoo.cfgClient port found: 2181. Client address: localhost.Mode: leaderroot@649a4dbfb694:/apache-zookeeper-3.5.5-bin# exitexit[root@localhost admin]# docker exec -it c8bc1b9ae9ad bashroot@c8bc1b9ae9ad:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /conf/zoo.cfgClient port found: 2181. Client address: localhost.Mode: followerroot@c8bc1b9ae9ad:/apache-zookeeper-3.5.5-bin# exitexit[root@localhost admin]#

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

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

開啟防火墻,以供外部訪問(wèn)

firewall-cmd --zone=public --add-port=2181/tcp --permanentfirewall-cmd --zone=public --add-port=2182/tcp --permanentfirewall-cmd --zone=public --add-port=2183/tcp --permanentsystemctl restart firewalldfirewall-cmd --list-all

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

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

可以看到連接成功!

Docker下安裝zookeeper(單機(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 Speed100 617 0 617 0 0 145 0 --:--:-- 0:00:04 --:--:-- 145100 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 --versiondocker-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ò)見(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.16networks: # 自定義網(wǎng)絡(luò) default: external: name: zoonet

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

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

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

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

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

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

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

[root@localhost DockerComposeFolder]# docker psCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMESa2c14814037d 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_150310229b216 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_1475d8a9e2d08 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 bashroot@zoo3:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.shConnecting 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 /hiCreated /hi[zk: localhost:2181(CONNECTED) 3] ls /[hi, zookeeper]

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

[root@localhost DockerComposeFolder]# docker exec -it 50310229b216 bashroot@zoo1:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.shConnecting 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

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

查看

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

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

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

刪除所有已停止的容器

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

更多docker-compose的命令:

[root@localhost DockerComposeFolder]# docker-compose --helpDefine and run multi-container applications with Docker.Usage: docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...] docker-compose -h|--helpOptions: -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, --versionPrint 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 equivalentCommands: build Build or rebuild services bundle Generate a Docker bundle from the Compose file config Validate and view the Compose file create Create services downStop and remove containers, networks, images, and volumes events Receive real time events from containers execExecute a command in a running container helpGet help on a command images List images killKill containers logsView output from containers pause Pause services portPrint the public port for a port binding ps List containers pullPull service images pushPush service images restart Restart services rm Remove stopped containers runRun a one-off command scale Set number of containers for a service start Start services stopStop services topDisplay 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)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Docker
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品伊人| 国产精品最新| 人人爱人人干婷婷丁香亚洲| 日韩理论视频| 国产精品黄色| 日韩精品一区第一页| 欧美天堂视频| 欧美精品国产白浆久久久久| 好看的av在线不卡观看| 欧美日韩视频免费观看| 国产精品一区三区在线观看| 国产91精品对白在线播放| 高清久久一区| 狠狠久久伊人中文字幕| 久久不见久久见免费视频7| japanese国产精品| 91精品推荐| 久久美女精品| 一区免费在线| 天堂资源在线亚洲| 国产精品久久久久久久久妇女| 乱一区二区av| 国产精品久久观看| 日韩综合精品| 婷婷成人综合| 乱人伦精品视频在线观看| 日韩二区在线观看| 成人污污视频| 日韩av中文字幕一区二区三区| 欧美福利专区| 国产一区国产二区国产三区| 鲁鲁在线中文| 国产伦久视频在线观看| 国产在线成人| 亚洲影视一区| 麻豆精品新av中文字幕| 久久狠狠亚洲综合| 成人一区不卡| 日韩午夜在线| 久久午夜精品| 国内自拍视频一区二区三区| 99久久久久国产精品| 免费人成精品欧美精品 | 色网在线免费观看| 在线视频精品| 麻豆视频一区| 国产精品试看| 精品伊人久久| 蜜桃视频一区二区三区| 欧美国产美女| 蜜桃一区二区三区在线观看| 久久超级碰碰| 在线亚洲观看| 精品一区视频| 蜜臀久久久久久久| 成人精品动漫一区二区三区| 国产精品美女久久久| 日韩不卡免费视频| 99热国内精品| 老司机精品视频网| 久久大逼视频| 久久青草久久| 欧美日韩在线观看视频小说| 欧美亚洲日本精品| 美女一区网站| 国产一区亚洲| 波多野结衣一区| 中文国产一区| 天使萌一区二区三区免费观看| 亚洲风情在线资源| 国产美女高潮在线观看| 国产一区二区精品福利地址| 欧美日本不卡高清| 欧美国产三级| 国产一区二区三区亚洲| 黑森林国产精品av| 午夜国产一区二区| 亚洲aa在线| 精品视频国内| 亚洲一级网站| 亚洲a级精品| 高清一区二区三区av| 国内精品99| 午夜精品福利影院| 欧美精品aa| 伊人久久成人| 国产精品115| 成人亚洲一区| 99精品99| 久久精品国产99国产| 欧美日韩视频| 国产精品久久久久久av公交车| 久久狠狠婷婷| 毛片在线网站| 亚洲精品一级二级| 亚洲一区二区网站| 日韩一区精品| 欧美一区二区三区高清视频 | 欧美在线看片| 免费一级欧美在线观看视频| 久久九九精品| 国产伦乱精品| 日韩精品一卡二卡三卡四卡无卡| 成人国产精品| 国产丝袜一区| 视频在线观看一区| 国内精品福利| 日韩精品1区| 国产精品天天看天天狠| 黄色亚洲免费| 综合日韩av| 国产欧美一区二区三区精品观看| 91精品xxx在线观看| 欧美激情精品| 中文字幕免费精品| 欧美亚洲在线日韩| 黄毛片在线观看| 精品视频一区二区三区四区五区| 日韩精品免费一区二区夜夜嗨 | 狠狠爱www人成狠狠爱综合网| 久久福利在线| 国产欧美日韩视频在线| 日韩在线观看中文字幕| 99日韩精品| 99视频一区| 午夜在线一区二区| 欧美午夜精彩| 四虎4545www国产精品 | 91亚洲成人| 精品香蕉视频| 久久只有精品| 福利片在线一区二区| 岛国精品一区| 久久久久国产精品一区二区| 丝袜美腿一区| 久久久久久自在自线| 欧美成人a交片免费看| 97精品97| 国产日韩欧美一区二区三区 | 午夜久久久久| 美女性感视频久久| 精品久久一区| 香蕉久久精品| 在线日韩电影| 蜜桃av一区二区在线观看| 亚洲精品观看| 精品精品99| 在线一区免费观看| 久久精品99久久久| 日韩专区精品| 日韩精品一区二区三区中文在线| 国产精品视频一区二区三区四蜜臂| 国产精品99精品一区二区三区∴| 免费一二一二在线视频| 六月天综合网| 91亚洲一区| 亚洲精品影视| 国际精品欧美精品| 日韩视频一区| 精品国产18久久久久久二百| 在线日韩一区| 国产精品高清一区二区| 午夜久久美女| 黄色网一区二区| 蜜桃视频在线观看一区| 日韩精品第一区| 国产精品极品国产中出| 亚洲免费播放| 美女国产精品久久久| 免费成人性网站| 久久狠狠婷婷| 精品国产aⅴ| 在线观看一区| 亚洲二区精品| 中文字幕在线高清| 国产乱码精品一区二区三区四区 | 日精品一区二区三区| 欧美丝袜一区| 免费在线小视频| 国产精品毛片久久| 欧美日韩一区二区三区在线电影| 亚洲夜间福利| 日韩精品欧美| 91亚洲国产| 高清一区二区三区av| 美女免费视频一区| 国产欧美一区二区精品久久久 | 免费在线观看一区二区三区| 久久要要av| 久久天堂成人| 日韩在线综合| 国产成人免费| 在线天堂资源www在线污| 精品久久视频| 国产在线观看www| 日韩在线精品| 五月综合激情| 午夜久久影院| 中文视频一区| 日本成人一区二区|