步骤

下载Zookeeper和Kafka镜像

通过docker search zookeeper 和 docker search kafka搜索对应的镜像进行下载

执行Zookeeper

1
2
docker run -d --name zookeeper -p 2181:2181 zookeeper
//注:搭建zookeeper时会有点不同,2888,3888两个端口在这里没有用到,所有没有配置

执行3个Kafka

1
2
3
4
5
6
7
8
kafka0:
docker run -d --user $(id -u) --name kafka0 --privileged=true -p 9090:9090 -v /cluster/kafka/kafka0/data:/bitnami/kafka/data -v /cluster/kafka/kafka0/config/server.properties:/opt/bitnami/kafka/config/server.properties -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.255.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.255.101:9090 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9090 kafka

kafka1:
docker run -d --user $(id -u) --name kafka1 --privileged=true -p 9091:9091 -v /cluster/kafka/kafka1/data:/bitnami/kafka/data -v /cluster/kafka/kafka1/config/server.properties:/opt/bitnami/kafka/config/server.properties -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.255.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.255.101:9091 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9091 kafka

kafka2:
docker run -d --user $(id -u) --name kafka2 --privileged=true -p 9092:9092 -v /cluster/kafka/kafka2/data:/bitnami/kafka/data -v /cluster/kafka/kafka2/config/server.properties:/opt/bitnami/kafka/config/server.properties -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=192.168.255.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.255.101:9092 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 kafka
  1. –user代表以宿主机当前用户作为容器对象,可以不要;
  2. –privileged涉及到权限问题,docker在挂载时,可能存在文件无法创建的情况,需要加上这个配置;
  3. 挂载data的目的一个是方便查看数据,另一个是方便修改meta.properties(存在和集群相关的信息,比较重要)
  4. 挂载server.properties的目的是方便修改配置,虽然可以通过环境变量的方式进行一些配置,但是似乎不是所有配置都可以利用这种方式,例如zookeeper.connection.timeout.ms(kafka连接zookeeper超时时间,有时候连不上zookeeper可以调整这个参数)似乎就不行,可以通过这个方法解决(需要先通过vim创建文件,不然创建的文件是个文件夹,会出现问题,猜测容器在启动的时候才会创建server.properties,所以宿主机的文件会同步写入配置);
  5. 其余配置都是通过环境变量的方式配置Kafka

本站总访问量:次本站总访问数:人
本站由 Peng Tong 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。