Docker + supervisor在同一容器中部署zookeeper和kafka

使用supervisor进程管理工具,在同一个容器中部署zookeeper和kafka
目录

Dockerfile
jdk1.8.0_181.tar.gz
kafka_2.12-1.1.0.tgz
conf.d
docker-compose.yml
kafka_conf.d

conf.d 中为supervisor配置文件
kafka_conf.d 中为kafka配置文件,解压kafka_2.12-1.1.0.tgz中的配置文件,拷贝到kafka_conf.d目录中对server.properties,zookeeper.properties 进行修改即可;

Dockerfile

FROM debian:latest
RUN apt-get update && apt-get install -y supervisor

ADD jdk1.8.0_181.tar.gz /opt
ADD kafka_2.12-1.1.0.tgz /

ENV JAVA_HOME /opt/jdk1.8.0_181
ENV PATH $PATH:$JAVA_HOME/bin

CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

EXPOSE 2182
EXPOSE 9092

docker-compose.yml

version: "3"
services:
  kafka:
    image: cnxue/kafka:2_12
    container_name: kafka
    hostname: kafka
    restart: always
    volumes:
      - ./kafka_conf.d:/kafka_2.12-1.1.0/config
      - ./conf.d:/etc/supervisor/conf.d
      - ./kafka_logs:/tmp/kafka-logs
      - ./zookeeper_logs:/tmp/zookeeper
      - ./supervisor_logs:/tmp/supervisor_logs
    ports:
      - 19092:9092
      - 12181:2181

supervisord.conf

[supervisord]
nodaemon=true
logfile=/tmp/supervisor_logs/supervisord.log
logfile_maxbytes=50MB      
logfile_backups=10         
loglevel=info            
pidfile=/var/run/supervisord.pid
minfds=1024
minprocs=200 

[program:zookeeper]
command=/kafka_2.12-1.1.0/bin/zookeeper-server-start.sh  /kafka_2.12-1.1.0/config/zookeeper.properties 
autostart = true
autorestart = true
logfile=/tmp/supervisor_logs/zoo.log

[program:kafka]
command=/kafka_2.12-1.1.0/bin/kafka-server-start.sh  /kafka_2.12-1.1.0/config/server.properties 
autostart = true
autorestart = true
logfile=/tmp/supervisor_logs/kafka.log
depends_on=zookeeper

server.properties

broker.id=0
listeners=PLAINTEXT://kafka:9092
advertised.listeners=PLAINTEXT://192.168.1.28:19092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

zookeeper.properties

dataDir=/tmp/zookeeper
maxClientCnxns=0
posted @   时光煮酒丶  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示