踩坑-Docker 搭建zookeeper集群

1,下载zookeeper镜像文件

1、搜索zookeeper镜像

 docker search zookeeper 

2、拉取zookeeper镜像

 docker pull zookeeper 

2,docker-compose安装zookeeper镜像

1,检查系统是否安装docker-compose,直接在命令行敲入docker-compose 即可,显示如下界面就是docker-compose已经安装。

在这里插入图片描述
如果没有安装的同学,使用pip3之类的linux工具安装,具体安装方法自行百度,这里不再细讲;

2,配置docker-compose.yml文件。

 version: '3.1'
 
services:
  zooa:
    image: zookeeper
    restart: always
    hostname: zoo1
    container_name: zooa
    ports:
      - 2181:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoob:
    image: zookeeper
    restart: always
    hostname: zoo2
    container_name: zoob
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zooc:
    image: zookeeper
    restart: always
    hostname: zoo3
    container_name: zooc
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181

3,docker-compose使用yml文件创建容器。

1、进入docker-compose.yml文件目录下

2、 执行如下命令

	docker-compose up -d

在这里插入图片描述
显示如上内容则表明容器创建成功!

  3、 执行如下命令,查看容器信息
	 docker-compose ps

在这里插入图片描述

或者

	 docker ps

在这里插入图片描述

3,docker-compose安装踩坑

1. ERROR: .UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

原因:从网上拷贝下来的文档有的不规范,不是使用utf-8编码的。

解决方式:
1,重新找其他人的模版文件
2,自己按yml规范自己手写一个

2.ERROR: yaml.parser.ParserError: while parsing a block mapping
  in "./docker-compose.yml", line 3, column 5
expected <block end>, but found '<block mapping start>'
  in "./docker-compose.yml", line 13, column 6

原因:模版文件不符合yml编码规范;

解决方案:熟悉yml格式规范,然后修改

3.ERROR: In file './docker-compose.yml', service must be a mapping, not a NoneType.

原因:模版文件不符合yml编码规范;

解决方案:熟悉yml格式规范,然后修改

4.ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-b8bb2c10fe30 -j RETURN: iptables: No chain/target/match by that name.

原因:linux关闭防火墙后未重启docker

解决方案:
service docker restart

5.ERROR: for _zoo2_1  Cannot create container for service zoo2: Invalid container name (_zoo2_1), only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed

原因:未指定容器名称,docker将使用默认容器名创建,名称不合法,自己手动指定

解决方案:
在yml配置文件中,每一个service上都加上容器名;

	 container_name: zooa

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值