转载请注明出处
参考链接
- https://hubgw.docker.com/_/zookeeper
获取镜像
# zookeeper
docker pull zookeeper:3.9.2
部署
单机部署(bridge模式)
创建 docker-compose.yml 文件内容如下
采用官方原生镜像
version: "3"
services:
zookeeper:
container_name: zookeeper
image: zookeeper:3.9.2
restart: on-failure:3
user: '0'
ports:
- 2181:2181
environment:
- TZ=Asia/Shanghai
- ZOO_MY_ID=1
- ZOO_ADMINSERVER_ENABLED=false
volumes:
- ./zookeeper_data/data:/data
- ./zookeeper_data/datalog:/datalog
healthcheck:
test: ["CMD-SHELL", "nc -vz 127.0.0.1 2181 || exit 1"]
start_period: 20s
interval: 10s
timeout: 30s
retries: 5
#volumes:
# zookeeper_data:
# driver: local
# 部署
docker compose up -d
# 卸载
docker compose down
单机部署(Host模式)
创建 docker-compose.yml 文件内容如下
version: "3"
services:
zookeeper:
container_name: zookeeper
image: zookeeper:3.9.2
restart: on-failure:3
user: '0'
environment:
- TZ=Asia/Shanghai
- ZOO_MY_ID=1
- ZOO_ADMINSERVER_ENABLED=false
network_mode: host
volumes:
- ./zookeeper_data/data:/data
- ./zookeeper_data/datalog:/datalog
healthcheck:
test: ["CMD-SHELL", "nc -vz 127.0.0.1 2181 || exit 1"]
start_period: 20s
interval: 10s
timeout: 30s
retries: 5
docker compose up -d
# 卸载
docker compose down
单机部署集群(bridge模式)
bridge 需要暴露一个外部端口供客户端访问
创建 docker-compose.yml 文件内容如下
version: "3"
networks:
zookeeper-network:
driver: bridge
services:
zookeeper-1:
container_name: zookeeper-1
image: zookeeper:3.9.2
restart: on-failure:3
user: '0'
ports:
- 2181:2181
environment:
- TZ=Asia/Shanghai
- ZOO_MY_ID=1
- ZOO_ADMINSERVER_ENABLED=false
- ZOO_SERVERS=server.1=zookeeper-1:2888:3888;2181 server.2=zookeeper-2:2888:3888;2181 server.3=zookeeper-3:2888:3888;2181
networks:
- zookeeper-network
# volumes:
# - ./zookeeper_data/data:/data
# - ./zookeeper_data/datalog:/datalog
healthcheck:
test: ["CMD-SHELL", "nc -vz 127.0.0.1 2181 || exit 1"]
start_period: 20s
interval: 10s
timeout: 30s
retries: 5
zookeeper-2:
container_name: zookeeper-2
image: zookeeper:3.9.2
restart: on-failure:3
user: '0'
ports:
- 2182:2181
environment:
- TZ=Asia/Shanghai
- ZOO_MY_ID=2
- ZOO_ADMINSERVER_ENABLED=false
- ZOO_SERVERS=server.1=zookeeper-1:2888:3888;2181 server.2=zookeeper-2:2888:3888;2181 server.3=zookeeper-3:2888:3888;2181
networks:
- zookeeper-network
# volumes:
# - ./zookeeper_data/data:/data
# - ./zookeeper_data/datalog:/datalog
healthcheck:
test: ["CMD-SHELL", "nc -vz 127.0.0.1 2181 || exit 1"]
start_period: 20s
interval: 10s
timeout: 30s
retries: 5
zookeeper-3:
container_name: zookeeper-3
image: zookeeper:3.9.2
restart: on-failure:3
user: '0'
ports:
- 2183:2181
environment:
- TZ=Asia/Shanghai
- ZOO_MY_ID=3
- ZOO_ADMINSERVER_ENABLED=false
- ZOO_SERVERS=server.1=zookeeper-1:2888:3888;2181 server.2=zookeeper-2:2888:3888;2181 server.3=zookeeper-3:2888:3888;2181
networks:
- zookeeper-network
# volumes:
# - ./zookeeper_data/data:/data
# - ./zookeeper_data/datalog:/datalog
healthcheck:
test: ["CMD-SHELL", "nc -vz 127.0.0.1 2181 || exit 1"]
start_period: 20s
interval: 10s
timeout: 30s
retries: 5
# 部署
docker compose up -d
# 卸载
docker compose down
# 验证状态
docker exec -it zookeeper-1 /opt/bitnami/zookeeper/bin/zkServer.sh status