1.下拉镜像:docker
docker pull zookeeperbash
2.运行镜像:服务器
此处未采起在主机上保存配置文件,则当docker服务重启,数据文件和配置文件等都会被从新初始化。app
docker run -p 2181:2181 --name myZookeeper --restart always -d zookeeperless
挂载: -v /my/own/zoo.cfg:/conf/zoo.cfg /my/own/data:/data /my/own/logs:/logstcp
/my/own/zoo.cfg 主机配置文件 /my/own/data 主机数据文件 /my/own/logs 主机日志文件spa
--restart always 则会在docker启动或者zookeeper遇到错误时,自动重启容器。有如下几个值:.net
标志 描述 no
不自动重启容器(默认值) on-failure
若是容器因为错误而退出,则将其从新启动,非零退出代码表示错误 unless-stopped
从新启动容器,除非明确中止容器或者 Docker 被中止或从新启动 always
只要容器中止了,就从新启动
docker exec -it myZookeeper bashrest
vi ./conf/zoo.cfg日志
Time=2000
initLimit=10
syncLimit=5
dataDir=/data
dataLogDir=/logs
clientPort=2181
server.1=127.0.0.1:2888:3888
admin.serverPort=8888
cd /zookeeper-3.4.13/bin/
zkServer.sh restart
"server.id=host:port:port"标识了不一样的ZooKeeper服务器的配置。id表示的是不一样的服务器。每台机器使用三个端口,分别是 clientPort:2181; port:2888; port:3888。其中2888端口是进行leader选举的端口,而3888端口则是组成ZooKeeper服务的机器之间的通讯端口。
在/data目录下,myid保存一个1便可:
vi myid
1
重启服务:
bin/zkServer.sh restart
ps #查看端口状况
exit#退出容器
查看容器的信息:
[root@localhost logs]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6218c7db6792 zookeeper "/docker-entrypoin..." 45 seconds ago Up 45 seconds 2181/tcp, 2888/tcp, 3888/tcp myZookeeper
启动zookeeper:
docker run -p 2181:2181 --name myZookeeper --restart always -d zookeeper
经过客户端链接已运行的zookeeper:
docker run -it --rm --link myZookeeper:zookeeper zookeeper zkCli.sh -server zookeeper
Docker容器中的另外一个应用程序链接到Zookeeper:
docker run --name someApp --link myZookeeper:zookeeper -d application-that-uses-zookeeper