Nachdem wir Docker gestartet haben, schauen wir uns die Optionen an, die uns zur Verfügung stehen. Wenn es eine offizielle Version gibt, wählen Sie natürlich die offizielle Version. herunterladen: [root@localhost-Administrator]# Docker Pull Zookeeper Standard-Tag verwenden: latest Es wird versucht, das Repository docker.io/library/zookeeper abzurufen ... aktuell: Abrufen von docker.io/library/zookeeper 1ab2bdfe9778: Existiert bereits 7aaf9a088d61: Ziehen abgeschlossen 80a55c9c9fe8: Ziehen abgeschlossen a0086b0e6eec: Ziehen abgeschlossen 4165e7457cad: Ziehen abgeschlossen bcba13bcf3a1: Ziehen abgeschlossen 41c03a109e47: Ziehen abgeschlossen 4d5281c6b0d4: Ziehen abgeschlossen Zusammenfassung: sha256:175d6bb1471e1e37a48bfa41a9da047c80fade60fd585eae3a0e08a4ce1d39ed Status: Neueres Image für docker.io/zookeeper:latest heruntergeladen Bilddetails anzeigen [root@localhost admin]# Docker-Bilder REPOSITORY TAG BILD ID ERSTELLT GRÖSSE 192.168.192.128:443/hello-2 latest 0c24558dd388 vor 42 Stunden 660 MB 192.168.192.128:443/hallo aktuell a3ba3d430bed vor 42 Stunden 660 MB docker.io/nginx latest 5a3221f0137b vor 13 Tagen 126 MB docker.io/zookeeper latest 3487af26dee9 vor 13 Tagen 225 MB docker.io/registry latest f32a97de94e1 vor 5 Monaten 25,8 MB docker.io/mongo latest 8bf72137439e vor 12 Monaten 380 MB docker.io/influxdb latest 34de2bdc2d7f vor 12 Monaten 213 MB docker.io/centos latest 5182e96772bf vor 12 Monaten 200 MB docker.io/grafana/grafana latest 3e16e05be9a3 vor 13 Monaten 245 MB docker.io/hello-world latest 2cb0d9787c4d vor 13 Monaten 1,85 kB docker.io/java latest d23bdf5b1b1b vor 2 Jahren 643 MB [root@localhost-Administrator]# docker inspect 3487af26dee9 [ { "ID": "sha256:3487af26dee9ef9eacee9a97521bc4f0243bef0b285247258c32f4a03cab92c5", "RepoTags": [ „docker.io/zookeeper:latest“ ], "RepoDigests": [ „docker.io/zookeeper@sha256:175d6bb1471e1e37a48bfa41a9da047c80fade60fd585eae3a0e08a4ce1d39ed“ ], "Übergeordnet": "", "Kommentar": "", "Erstellt": "2019-08-15T06:10:50.178554969Z", "Container": "9a38467115f1952161d6075135d5c5287967282b834cfe68183339c810f9652b", "ContainerKonfiguration": { "Hostname": "9a38467115f1", "Domänenname": "", "Benutzer": "", "AttachStdin": falsch, "AttachStdout": falsch, "AttachStderr": false, "Offengelegte Ports": { "2181/tcp": {}, "2888/tcp": {}, "3888/tcp": {}, "8080/tcp": {} }, "Tty": falsch, "OpenStdin": falsch, "StdinOnce": falsch, "Umgebung": [ „PFAD=/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=/Daten", "ZOO_DATA_LOG_DIR=/Datenprotokoll", "ZOO_LOG_DIR=/Protokolle", "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“ ], "Befehl": [ "/bin/sh", "-C", "#(nop) ", "CMD [\"zkServer.sh\" \"start-foreground\"]" ], "ArgsEscaped": wahr, "Bild": "sha256:20bf3cc1bd5b5766b79da5265e94007d0802ce241df1636d0f63e211a79a0e3e", "Volumen": { "/Daten": {}, "/Datenprotokoll": {}, "/logs": {} }, "Arbeitsverzeichnis": "/apache-zookeeper-3.5.5-bin", "Einstiegspunkt": [ „/docker-entrypoint.sh“ ], "OnBuild": null, "Beschriftungen": {} }, "DockerVersion": "18.06.1-ce", "Autor": "", "Konfiguration": { "Hostname": "", "Domänenname": "", "Benutzer": "", "AttachStdin": falsch, "AttachStdout": falsch, "AttachStderr": false, "Offengelegte Ports": { "2181/tcp": {}, "2888/tcp": {}, "3888/tcp": {}, "8080/tcp": {} }, "Tty": falsch, "OpenStdin": falsch, "StdinOnce": falsch, "Umgebung": [ „PFAD=/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=/Daten", "ZOO_DATA_LOG_DIR=/Datenprotokoll", "ZOO_LOG_DIR=/Protokolle", "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“ ], "Befehl": [ "zkServer.sh", "Start-Vordergrund" ], "ArgsEscaped": wahr, "Bild": "sha256:20bf3cc1bd5b5766b79da5265e94007d0802ce241df1636d0f63e211a79a0e3e", "Volumen": { "/Daten": {}, "/Datenprotokoll": {}, "/logs": {} }, "Arbeitsverzeichnis": "/apache-zookeeper-3.5.5-bin", "Einstiegspunkt": [ „/docker-entrypoint.sh“ ], "OnBuild": null, "Labels": null }, "Architektur": "amd64", "Betriebssystem": "linux", "Größe": 225126346, "VirtuelleGröße": 225126346, "GraphTreiber": { "Name": "overlay2", "Daten": { "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/zusammengeführt", "UpperDir": "/var/lib/docker/overlay2/a7fcc1b78c472cde943f20d1d4495f145308507b5fe3da8800c33dc4ce426156/diff", "Arbeitsverzeichnis": "/var/lib/docker/overlay2/a7fcc1b78c472cde943f20d1d4495f145308507b5fe3da8800c33dc4ce426156/work" } }, "RootFS": { "Typ": "Ebenen", "Ebenen": [ "sha256:1c95c77433e8d7bf0f519c9d8c9ca967e2603f0defbf379130d9a841cca2e28e", "sha256:2bf534399acac9c6b09a0b1d931223808000b04400a749f08187ed9ee435738d", "sha256:eb25e0278d41b9ac637d8cb2e391457cf44ce8d2bfe0646d0c9faefc96413f91", "sha256:e54bd3566d9ef3e1309a5af6caf8682f32c6ac4d6adfcbd3e601cfee4e2e0e85", "sha256:c79435051d529a7b86f5f9fc32e7e2ec401929434e5596f02a2af731f55c9f28", "sha256:76e0d7b2d700e6d17924b985703c7b5b84fb39ddcc0a1181b41217c2a11dffc4", "sha256:eecdc37df6afd77091641588f9639f63b65e8eb141e56529e00da44419c5bd04", „sha256:36e788f2d91a89375df5901f31cca33776f887c00ddfd3cf9f2466fa4cb794d6“ ] } } ] Der Standard-Pull ist die neueste Version 3.5.X. Wenn Sie Version 3.4.X benötigen, müssen Sie das Tag angeben Einzelne Maschine # Die letzte ist die Image-ID [root@localhost admin]# docker run -d -p 2181:2181 --name some-zookeeper --restart always 3487af26dee9 d5c6f857cd88c342acf63dd58e838a4cdf912daa6c8c0115091147136e819307 [root@localhost-Administrator]# docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN d5c6f857cd88 3487af26dee9 "/docker-entrypoint..." vor 4 Sekunden Up 3 Sekunden 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp some-zookeeper [root@localhost-Administrator]# docker exec -it d5c6f857cd88 bash root@d5c6f857cd88:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.sh Verbindung zu localhost:2181 wird hergestellt 29.08.2019 07:15:21,623 [myid:] - INFO [main:Environment@109] - Client-Umgebung:zookeeper.version=3.5.5-390fe37ea45dee01bf87dc1c042b5e3dcce88653, erstellt am 03.05.2019 12:07 GMT 29.08.2019 07:15:21,679 [myid:] - INFO [main:Environment@109] - Clientumgebung:host.name=d5c6f857cd88 29.08.2019 07:15:21,680 [myid:] - INFO [main:Environment@109] - Clientumgebung:java.version=1.8.0_222 29.08.2019 07:15:21,717 [myid:] - INFO [main:Environment@109] - Clientumgebung:java.vendor=Oracle Corporation 29.08.2019 07:15:21,718 [myid:] – INFO [main:Environment@109] – Clientumgebung: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: 29.08.2019 07:15:22,108 [myid:] – INFO [main:Environment@109] – Clientumgebung:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 29.08.2019 07:15:22,109 [myid:] – INFO [main:Environment@109] – Clientumgebung:java.io.tmpdir=/tmp 29.08.2019 07:15:22,109 [myid:] – INFO [main:Environment@109] – Clientumgebung:java.compiler=<NA> 29.08.2019 07:15:22,109 [myid:] – INFO [main:Environment@109] – Clientumgebung:os.name=Linux 29.08.2019 07:15:22,109 [myid:] – INFO [main:Environment@109] – Clientumgebung:os.arch=amd64 29.08.2019 07:15:22,110 [myid:] – INFO [main:Environment@109] – Clientumgebung:os.version=3.10.0-862.9.1.el7.x86_64 29.08.2019 07:15:22,110 [myid:] - INFO [main:Environment@109] - Clientumgebung:Benutzername=root 29.08.2019 07:15:22,110 [myid:] – INFO [main:Environment@109] – Clientumgebung:user.home=/root 29.08.2019 07:15:22,110 [myid:] – INFO [main:Environment@109] – Clientumgebung:user.dir=/apache-zookeeper-3.5.5-bin 29.08.2019 07:15:22,118 [myid:] – INFO [main:Environment@109] – Clientumgebung:os.memory.free=11MB 29.08.2019 07:15:22,148 [myid:] – INFO [main:Environment@109] – Clientumgebung:os.memory.max=247MB 29.08.2019 07:15:22,148 [myid:] – INFO [main:Environment@109] – Clientumgebung:os.memory.total=15MB 29.08.2019 07:15:22,206 [myid:] - INFO [main:ZooKeeper@868] - Client-Verbindung wird initiiert, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@3b95a09c 29.08.2019 07:15:22,239 [myid:] - INFO [main:X509Util@79] - Einstellung -D jdk.tls.rejectClientInitiatedRenegotiation=true, um die vom Client initiierte TLS-Neuverhandlung zu deaktivieren 29.08.2019 07:15:22,285 [myid:] – INFO [main:ClientCnxnSocket@237] – jute.maxbuffer-Wert beträgt 4194304 Bytes 29.08.2019 07:15:22,366 [myid:] – INFO [main:ClientCnxn@1653] – zookeeper.request.timeout-Wert ist 0. Funktion aktiviert= Willkommen bei ZooKeeper! JLine-Unterstützung ist aktiviert 29.08.2019 07:15:22,563 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1112] - Socket-Verbindung zum Server localhost/0:0:0:0:0:0:0:0:1:2181 wird geöffnet. Es wird kein Versuch zur Authentifizierung mit SASL unternommen (unbekannter Fehler) 29.08.2019 07:15:23,443 [myid:localhost:2181] – INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@959] – Socket-Verbindung hergestellt, Sitzung wird initiiert, Client: /0:0:0:0:0:0:0:1:37198, Server: localhost/0:0:0:0:0:0:0:1:2181 29.08.2019 07:15:23,520 [myid:localhost:2181] – INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1394] – Sitzungsaufbau auf Server localhost/0:0:0:0:0:0:0:1:2181 abgeschlossen, Sitzungs-ID = 0x10001216d990000, ausgehandeltes Timeout = 30000 BEOBACHTER:: WatchedEvent-Status: SyncConnected Typ: Keiner Pfad: null [zk:localhost:2181(VERBUNDEN) 0] ls / [Tierpfleger] [zk: localhost:2181(VERBUNDEN) 1] beenden BEOBACHTER:: WatchedEvent-Status: Geschlossen Typ: Keiner Pfad: null 29.08.2019 07:15:37,042 [myid:] – INFO [main:ZooKeeper@1422] – Sitzung: 0x10001216d990000 geschlossen 29.08.2019 07:15:37,043 [myid:] – INFO [main-EventThread:ClientCnxn$EventThread@524] – EventThread für Sitzung heruntergefahren: 0x10001216d990000 root@d5c6f857cd88:/apache-zookeeper-3.5.5-bin# beenden Ausfahrt [root@localhost-Administrator]# Zugriff von extern (192.168.192.128:2181) Cluster Umgebung: Einzelner Hostcomputer (192.168.192.128), starten Sie drei Zookeeper-Container. Hier gibt es ein Problem, nämlich die Kommunikation zwischen Docker-Containern. Das ist sehr wichtig! Docker hat drei Netzwerkmodi: Bridge, Host und Keine. Wenn Sie beim Erstellen eines Containers --network nicht angeben, ist Bridge der Standard. Brücke: Weisen Sie jedem Container eine IP zu und verbinden Sie den Container mit einer virtuellen Docker0-Brücke, um über die Docker0-Brücke mit dem Host zu kommunizieren. Das heißt, in diesem Modus können Sie die Host-IP + den Container-Mapping-Port nicht zur Kommunikation zwischen Docker-Containern verwenden. Host: Der Container virtualisiert nicht seine eigene Netzwerkkarte und konfiguriert nicht seine eigene IP, sondern verwendet die IP und den Port des Hostcomputers. Auf diese Weise kann die Kommunikation zwischen Docker-Containern den Host-IP- und Container-Mapping-Port verwenden keine: Kein Netzwerk. ===================================================== Erstellen Sie zunächst lokal ein Verzeichnis: [root@localhost-Administrator]# mkdir /usr/local/zookeeper-cluster [root@localhost-Administrator]# mkdir /usr/local/zookeeper-cluster/node1 [root@localhost-Administrator]# mkdir /usr/local/zookeeper-cluster/node2 [root@localhost-Administrator]# mkdir /usr/local/zookeeper-cluster/node3 [root@localhost-Administrator]# ll /usr/local/zookeeper-cluster/ gesamt 0 drwxr-xr-x. 2 root root 6 28. August 23:02 node1 drwxr-xr-x. 2 root root 6 28. August 23:02 node2 drwxr-xr-x. 2 root root 6 28. August 23:02 node3 Führen Sie dann den Befehl aus, um zu starten 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_MEINE_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_MEINE_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_MEINE_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 【Grube】 Auf den ersten Blick ist nichts falsch. Ordnen Sie zuerst den Port dem Hostcomputer zu, und dann ist die Zugriffsadresse zwischen den drei Zookeepern die IP des Hostcomputers: zugeordneter Port. Es ist nichts falsch. Sie können das Problem erkennen, wenn Sie sich den Netzwerkmodus ansehen, den ich zuvor erwähnt habe. Es gibt ein Problem mit der IP in ZOO_SERVERS. Leute, die diesen Fehler machen, verstehen den Netzwerkmodus von Docker nicht. Was ist falsch? Siehe unten. Über ZOO_SERVERS Was bedeutet das? Ab 3.5.0 sollten die Konfigurationsparameter clientPort und clientPortAddress nicht mehr verwendet werden. Stattdessen sind diese Informationen jetzt Teil der Server-Schlüsselwortspezifikation. Die Portzuordnungen der drei Container sind unterschiedlich, z. B. 2181/2182/2183. Da es sich um einen Hostcomputer handelt, können die Ports nicht in Konflikt geraten. Wenn Sie sich nicht auf demselben Computer befinden, müssen Sie den Port nicht ändern. Der letzte Parameter ist die Bild-ID oder kann der Bildname sein: TAG. Der Parameter --privileged=true dient zum Lösen von [chown: ändern des Besitzes von '/data': Zugriff verweigert], Sie können true auch weglassen Ausführungsergebnis: [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_MEINE_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_MEINE_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_MEINE_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-Administrator]# Anzeigen des gestarteten Containers [root@localhost-Administrator]# docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 0:3890->3888/tcp zookeeper_node3 6dabae1d92f0 3487af26dee9 "/docker-entrypoin..." vor 31 Sekunden. 29 Sekunden aktiv. 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-entrypoint …“ vor 36 Sekunden. 35 Sekunden aktiv. 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 …“ vor 46 Sekunden. Seit 45 Sekunden aktiv. 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-Administrator]# Heißt es nicht, dass ein Fehler vorliegt? Wie kam es zu einem erfolgreichen Start? ? Werfen wir einen Blick auf das Startprotokoll von Knoten 1 [root@localhost-Administrator]# docker logs -f 4bfa6bbeb936 ZooKeeper JMX standardmäßig aktiviert ... 2019-08-29 09:20:22,665 [myid:1] - WARNUNG [WorkerSender[myid=1]:QuorumCnxManager@677] - Kanal zu 2 kann bei Wahladresse /192.168.192.128:3889 nicht geöffnet werden java.net.ConnectException: Verbindung abgelehnt (Verbindung abgelehnt) bei java.net.PlainSocketImpl.socketConnect (native Methode) bei java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) bei java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) bei java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) bei java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) bei java.net.Socket.connect(Socket.java:589) bei org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:648) bei org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:705) bei org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:618) bei org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:477) bei org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:456) bei java.lang.Thread.run(Thread.java:748) 2019-08-29 09:20:22,666 [myid:1] - WARNUNG [WorkerSender[myid=1]:QuorumCnxManager@677] - Kanal zu 3 kann bei Wahladresse /192.168.192.128:3890 nicht geöffnet werden java.net.ConnectException: Verbindung abgelehnt (Verbindung abgelehnt) bei java.net.PlainSocketImpl.socketConnect (native Methode) bei java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) bei java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) bei java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) bei java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) bei java.net.Socket.connect(Socket.java:589) bei org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:648) bei org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:705) bei org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:618) bei org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:477) bei org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:456) bei java.lang.Thread.run(Thread.java:748) Verbindung zu 2 und 3 nicht möglich. Warum? Weil im Standardnetzwerkmodus von Docker die IP-Adresse und der zugeordnete Port des Hostcomputers überhaupt nicht gefunden werden können! Sie haben ihre eigene IP! wie folgt: [root@localhost-Administrator]# docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN 6dabae1d92f0 3487af26dee9 „/docker-entrypoin …“ vor 5 Minuten. Vor 5 Minuten aktiv. 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 …“ vor 6 Minuten. Vor 6 Minuten aktiv 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 …“ vor 6 Minuten. Vor 6 Minuten aktiv. 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-Administrator]# docker inspect 4bfa6bbeb936 "Netzwerke": { "Brücke": { "IPAMConfig": null, "Links": null, "Aliase": null, "Netzwerk-ID": "5fc1ce4362afe3d34fdf260ab0174c36fe4b7daf2189702eae48101a755079f3", "EndpointID": "368237e4c903cc663111f1fe33ac4626a9100fb5a22aec85f5eccbc6968a1631", "Gateway": "172.17.0.1", "IP-Adresse": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAdresse": "02:42:ac:11:00:02" } } } } ] [root@localhost-Administrator]# docker inspect dbb7f1f323a0 "Netzwerke": { "Brücke": { "IPAMConfig": null, "Links": null, "Aliase": null, "Netzwerk-ID": "5fc1ce4362afe3d34fdf260ab0174c36fe4b7daf2189702eae48101a755079f3", "EndpointID": "8a9734044a566d5ddcd7cbbf6661abb2730742f7c73bd8733ede9ed8ef106659", "Gateway": "172.17.0.1", "IP-Adresse": "172.17.0.3", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAdresse": "02:42:ac:11:00:03" } } } } ] [root@localhost-Administrator]# docker inspect 6dabae1d92f0 "Netzwerke": { "Brücke": { "IPAMConfig": null, "Links": null, "Aliase": null, "Netzwerk-ID": "5fc1ce4362afe3d34fdf260ab0174c36fe4b7daf2189702eae48101a755079f3", "EndpointID": "b10329b9940a07aacb016d8d136511ec388de02bf3bd0e0b50f7f4cbb7f138ec", "Gateway": "172.17.0.1", "IP-Adresse": "172.17.0.4", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAdresse": "02:42:ac:11:00:04" } } } } ] Knoten1---172.17.0.2 Nachdem wir nun wissen, dass es eine eigene IP hat, ergibt sich ein weiteres Problem: Seine IP ist dynamisch und wir können sie vor dem Start nicht kennen. Eine Lösung besteht darin, ein eigenes Bridge-Netzwerk zu erstellen und dann beim Erstellen des Containers die IP anzugeben. [Richtig beginnen] [root@localhost admin]# Docker-Netzwerk erstellen --Driver Bridge --Subnet=172.18.0.0/16 --Gateway=172.18.0.1 Zoonet 8257c501652a214d27efdf5ef71ff38bfe222c3a2a7898be24b8df9db1fb3b13 [root@localhost-Administrator]# Docker-Netzwerk ls NETZWERK-ID-NAME TREIBER-UMFANG 5fc1ce4362af Brücke Brücke lokal 6aa33e21444e Host Host lokal 20e563b93ce9 keine null lokal 8257c501652a Zoonet-Brücke lokal [root@localhost admin]# Docker-Netzwerkinspektion 8257c501652a [ { "Name": "zoonet", "ID": "8257c501652a214d27efdf5ef71ff38bfe222c3a2a7898be24b8df9db1fb3b13", "Erstellt": "2019-08-29T06:08:01.442601483-04:00", "Geltungsbereich": "lokal", "Treiber": "Brücke", "EnableIPv6": false, "IPAM": { "Treiber": "Standard", "Optionen": {}, "Konfiguration": [ { "Subnetz": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, "Intern": false, "Anfügbar": false, "Container": {}, "Optionen": {}, "Beschriftungen": {} } ] Dann ändern wir den Erstellungsbefehl des Zookeeper-Containers. 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_MEINE_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_MEINE_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_MEINE_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. Da 2888 und 3888 nicht freigegeben werden müssen, werden sie nicht zugeordnet. 2. Geben Sie Ihr eigenes Netzwerk und Ihre IP an; 3. Die Umgebung zwischen den einzelnen Containern ist isoliert, sodass die im Container verwendeten Ports dieselben sind: 2181/2888/3888 Laufergebnisse: [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_MEINE_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_MEINE_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_MEINE_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-Administrator]# docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN c8bc1b9ae9ad 3487af26dee9 "/docker-entrypoin..." vor 17 Sekunden. 16 Sekunden aktiv. 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2183->2181/tcp zookeeper_node3 649a4dbfb694 3487af26dee9 "/docker-entrypoint..." vor 22 Sekunden. 21 Sekunden aktiv. 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2182->2181/tcp zookeeper_node2 50c07cf11fab 3487af26dee9 "/docker-entrypoint..." vor 33 Sekunden Aktiv seit 32 Sekunden 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp zookeeper_node1 [root@localhost-Administrator]# Geben Sie den zu überprüfenden Container ein: [root@localhost-Administrator]# docker exec -it 50c07cf11fab bash root@50c07cf11fab:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh status ZooKeeper JMX standardmäßig aktiviert Konfiguration verwenden: /conf/zoo.cfg Gefundener Client-Port: 2181. Client-Adresse: localhost. Modus: Follower root@50c07cf11fab:/apache-zookeeper-3.5.5-bin# beenden Ausfahrt [root@localhost-Administrator]# docker exec -it 649a4dbfb694 bash root@649a4dbfb694:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh status ZooKeeper JMX standardmäßig aktiviert Konfiguration verwenden: /conf/zoo.cfg Gefundener Client-Port: 2181. Client-Adresse: localhost. Modus: Anführer root@649a4dbfb694:/apache-zookeeper-3.5.5-bin# beenden Ausfahrt [root@localhost-Administrator]# docker exec -it c8bc1b9ae9ad bash root@c8bc1b9ae9ad:/apache-zookeeper-3.5.5-bin# ./bin/zkServer.sh status ZooKeeper JMX standardmäßig aktiviert Konfiguration verwenden: /conf/zoo.cfg Gefundener Client-Port: 2181. Client-Adresse: localhost. Modus: Follower root@c8bc1b9ae9ad:/apache-zookeeper-3.5.5-bin# beenden Ausfahrt [root@localhost-Administrator]# Überprüfen der Erstellung des Knotens Öffnen Sie die Firewall für den externen Zugriff Firewall-Befehl --zone=public --add-port=2181/tcp --permanent Firewall-Befehl --zone=public --add-port=2182/tcp --permanent Firewall-Befehl --zone=public --add-port=2183/tcp --permanent systemctl restart firewalld Firewall-Befehl --list-all Lokal verwende ich den Zookeeper-Client, um eine Verbindung zum Cluster auf der virtuellen Maschine herzustellen: Sie können sehen, dass die Verbindung erfolgreich ist! Clusterinstallationsmethode 2: Installation über Docker Stack Deploy oder Docker-Compose Verwenden Sie hier Docker-Compose. Installieren Sie zuerst Docker-Compose [root@localhost-Administrator]# curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose % Gesamt % Empfangen % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktuell Dload Upload Gesamtverbrauch Verbleibende Geschwindigkeit 100 617 0 617 0 0 145 0 --:--:-- 0:00:04 --:--:-- 145 100 15,4 Mio. 100 15,4 Mio. 0 0 131.000 0 0:02:00 0:02:00 --:--:-- 136.000 [root@localhost-Administrator]# chmod +x /usr/local/bin/docker-compose Überprüfen Sie die Version (um festzustellen, ob die Installation erfolgreich war). [root@localhost-Administrator]# docker-compose --version Docker-Compose-Version 1.24.1, Build 4667896b Wenn Sie deinstallieren rm /usr/local/bin/docker-compose Starten Sie die Konfiguration und erstellen Sie drei neue Mount-Verzeichnisse [root@localhost-Administrator]# mkdir /usr/local/zookeeper-cluster/node4 [root@localhost-Administrator]# mkdir /usr/local/zookeeper-cluster/node5 [root@localhost-Administrator]# mkdir /usr/local/zookeeper-cluster/node6 Erstellen Sie ein neues Verzeichnis und erstellen Sie darin eine neue Datei [root@localhost-Administrator]# mkdir DockerComposeFolder [root@localhost-Administrator]# cd DockerComposeFolder/ [root@localhost DockerComposeFolder]# vim docker-compose.yml Der Dateiinhalt ist wie folgt: (siehe oben für benutzerdefiniertes Netzwerk) Version: '3.1' Leistungen: zoo1: Bild: Tierpfleger Neustart: immer privilegiert: wahr Hostname: zoo1 Häfen: - 2181:2181 Volumes: #Daten mounten - /usr/local/zookeeper-cluster/node4/data:/data – /usr/local/zookeeper-cluster/node4/datalog:/datalog Umfeld: 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 Netzwerke: Standard: IPv4-Adresse: 172.18.0.14 zoo2: Bild: Tierpfleger Neustart: immer privilegiert: wahr Hostname: zoo2 Häfen: - 2182:2181 Volumes: #Daten mounten - /usr/local/zookeeper-cluster/node5/data:/data – /usr/local/zookeeper-cluster/node5/datalog:/datalog Umfeld: 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 Netzwerke: Standard: IPv4-Adresse: 172.18.0.15 zoo3: Bild: Tierpfleger Neustart: immer privilegiert: wahr Hostname: zoo3 Häfen: - 2183:2181 Volumes: #Daten mounten - /usr/local/zookeeper-cluster/node6/data:/data – /usr/local/zookeeper-cluster/node6/datalog:/datalog Umfeld: 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 Netzwerke: Standard: IPv4-Adresse: 172.18.0.16 Netzwerke: # Benutzerdefinierte Netzwerkvorgabe: extern: Name: Zoonet Beachten Sie, dass die YAML-Datei keine Tabulatoren, sondern nur Leerzeichen enthalten darf. Die Beziehung zwischen Version und Docker-Version ist wie folgt: Dann ausführen (-d Hintergrund starten) docker-compose -f docker-compose.yml up -d Gestartete Container anzeigen [root@localhost DockerComposeFolder]# docker ps CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN a2c14814037d zookeeper "/docker-entrypoin..." vor 6 Minuten Aktiv Ungefähr eine Minute 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2183->2181/tcp dockercomposefolder_zoo3_1 50310229b216 zookeeper "/docker-entrypoin..." vor 6 Minuten Aktiv Ungefähr eine Minute 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp dockercomposefolder_zoo1_1 475d8a9e2d08 zookeeper "/docker-entrypoin..." vor 6 Minuten Aktiv Vor etwa einer Minute 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2182->2181/tcp dockercomposefolder_zoo2_1 Betreten eines Containers [root@localhost DockerComposeFolder]# docker exec -it a2c14814037d bash root@zoo3:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.sh Verbindung zu localhost:2181 wird hergestellt .... WatchedEvent-Status: SyncConnected Typ: Keiner Pfad: null [zk:localhost:2181(VERBUNDEN) 0] [zk:localhost:2181(VERBUNDEN) 1] ls / [Tierpfleger] [zk: localhost:2181(VERBUNDEN) 2] erstellen /hi Erstellt /hi [zk: localhost:2181(VERBUNDEN) 3] ls / [hallo, Tierpfleger] Einen anderen Container eingeben [root@localhost DockerComposeFolder]# docker exec -it 50310229b216 bash root@zoo1:/apache-zookeeper-3.5.5-bin# ./bin/zkCli.sh Verbindung zu localhost:2181 wird hergestellt ... WatchedEvent-Status: SyncConnected Typ: Keiner Pfad: null [zk:localhost:2181(VERBUNDEN) 0] ls / [hallo, Tierpfleger] Der lokale Client stellt eine Verbindung zum Cluster her: ZKCLI.CMD -SERVER 192.168.192.128:2181,192.168.192.128:2182,192.168.192.128:2183 Überprüfen Stoppen Sie alle aktiven Behälter Entfernen Sie alle gestoppten Container Weitere Docker-Compose-Befehle: [root@localhost dockerComponponFolder]# Docker-compose-HELP Definieren und führen Sie Multi-Container-Anwendungen mit Docker aus. Verwendung: docker-compose [-f <arg>…] [Optionen] [BEFEHL] [ARGS…] docker-compose -h|--Hilfe Optionen: -f, --file DATEI Gibt eine alternative Erstellungsdatei an (Standard: docker-compose.yml) -p, --project-name NAME Geben Sie einen alternativen Projektnamen an (Standard: Verzeichnisname) --verbose Weitere Ausgabe anzeigen --log-level LEVEL Protokollebene festlegen (DEBUG, INFO, WARNING, ERROR, CRITICAL) --no-ansi Keine ANSI-Steuerzeichen drucken -v, --version Version drucken und beenden -H, --host HOST Daemon-Socket zum Verbinden --tls TLS verwenden; impliziert durch --tlsverify --tlscacert CA_PATH Nur von dieser Zertifizierungsstelle signierte Zertifikate vertrauen --tlscert CLIENT_CERT_PATH Pfad zur TLS-Zertifikatsdatei --tlskey TLS_KEY_PATH Pfad zur TLS-Schlüsseldatei --tlsverify TLS verwenden und den Remote- --skip-hostname-check Vergleicht den Hostnamen des Daemons nicht mit dem Name, der im Client-Zertifikat angegeben ist --project-directory PATH Geben Sie ein alternatives Arbeitsverzeichnis an (Standard: der Pfad der Compose-Datei) --compatibility Wenn gesetzt, versucht Compose, Schlüssel zu konvertieren in v3-Dateien zu ihrem Nicht-Swarm-Äquivalent Befehle: build Dienste erstellen oder neu erstellen Bundle: Generieren Sie ein Docker-Bundle aus der Compose-Datei config Überprüfen und Anzeigen der Compose-Datei erstellenErstellen von Diensten down Stoppen und entfernen Sie Container, Netzwerke, Bilder und Volumes Ereignisse Empfangen Sie Echtzeitereignisse von Containern exec Einen Befehl in einem laufenden Container ausführen Hilfe Erhalten Sie Hilfe zu einem Befehl Bilder Liste der Bilder töten Töten Sie Container logs Ausgabe von Containern anzeigen pause Dienste pausieren Port Den öffentlichen Port für eine Portbindung drucken ps Container auflisten Pull Pull-Dienst Bilder push-service Bilder Neustart. Dienste neu starten. rm Gestoppte Container entfernen run Einen einmaligen Befehl ausführen Skalieren Festlegen der Anzahl von Containern für einen Dienst Start Dienste starten stop Dienste stoppen top Anzeige der laufenden Prozesse unpause Dienste pausieren nach oben Container erstellen und starten version Zeigt die Docker-Compose-Versionsinformationen an Dies ist das Ende dieses Artikels zur Installation von Zookeeper (eigenständiger und Cluster) unter Docker. Das könnte Sie auch interessieren:
|
>>: Beheben Sie den abnormalen Fehler beim Erstellen einer Vue-Umgebung mit Webpack
Inhaltsverzeichnis 1. Kontext 1. Anwendungsszenar...
In diesem Artikel wird der spezifische JavaScript...
Hexadezimalcodetabelle verschiedener Farben [Teil ...
Vorwort Wenn CSS die Grundfertigkeit der Front-En...
Ich habe heute eine JSP-Seite geschrieben. Ich hab...
Das Document Object Model (DOM) ist eine Plattfor...
Wie zentrieren Sie Ihre HTML-Schaltfläche selbst?...
Was ist ein Ansichtsfenster? Mobile Browser platz...
Bevor Sie mit dem Haupttext dieses Artikels begin...
Inhaltsverzeichnis Umgebungsvorbereitung Umgebung...
In tatsächlichen Projekten befinden sich die Bild...
Im Linux-System können sowohl chmod- als auch cho...
Das Problem beim Zurücksetzen des Passworts für d...
Effektive Lösung für Ubuntu, wenn in einer virtue...
Inhaltsverzeichnis Text LOCK-Parameter ALGORITHMU...