Docker安装Kafka——基于docker-compose工具

1. 编写docker-compose文件

zookeeper的docker-compose.yml

version: '3.7'

services:
  zookeeper:
    image: zookeeper:3.4.14
    container_name: zookeeper_3.4.14
    ports: 
      - "2181:2181"
    volumes:
      - /data/zookeeper/logs:/datalog
      - /data/zookeeper/data:/data

kafka的docker-compose.yml

version: '3.7'

services:
  kafka:
    image: wurstmeister/kafka:0.10.2.0
    container_name: kafka_0.10.2.0
    ports: 
      - "9092:9092"
    restart: "no"
    network_mode: "host"
    volumes:
      - /etc/localtime:/etc/localtime
      - /data/kafka/logs:/kafka/logs
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=127.0.0.1
      - KAFKA_ZOOKEEPER_CONNECT=127.0.0.1:2181
      - KAFKA_BROKER_ID=0
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
      - KAFKA_LISTENERS=PLAINTEXT://127.0.0.1:9092
      - KAFKA_HEAP_OPTS=-Xms128m -Xmx256m
      - KAFKA_LOG_DIRS=/kafka/logs

2. 启动容器

docker-compose up -d

附1 kafka环境变量说明

# client 要访问的 broker 地址
KAFKA_ADVERTISED_HOST_NAME: 118.25.215.105
# 通过端口连接 zookeeper
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
# 每个容器就是一个 broker,设置其对应的 ID
KAFKA_BROKER_ID: 0
# 外部网络只能获取到容器名称,在内外网络隔离情况下
# 通过名称是无法成功访问 kafka 的
# 因此需要通过绑定这个监听器能够让外部获取到的是 IP 
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://118.25.215.105:9092
# kafka 监听器,告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
# Kafka默认使用-Xmx1G -Xms1G的JVM内存配置,由于服务器小,调整下启动配置
# 这个看自己的现状做调整,如果资源充足,可以不用配置这个
KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M"
# 设置 kafka 日志位置
KAFKA_LOG_DIRS: "/kafka/logs"
# kafka 自动创建 topic,对于生成者与消费者连接的 TOPIC 不存在自动创建
KAFKA_AUTO_CREATE_TOPICS_ENABLE: true
# kafka 开启删除 topic,开了自动创建,删除的也要开,否则删除后还会自动创建
KAFKA_DELETE_TOPIC_ENABLE: true

附2 docker-compose安装和命令介绍

CentOS7安装docker-compose(附docker-compose命令介绍)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值