docker(docker-compose)安装部署kafka

1、拉取zookeeper和kafka镜像

docker pull wurstmeister/kafka
docker pull wurstmeister/zookeeper

2、启动服务

先启动zookeeper再启动kafka

#启动zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
#启动kafka 注:此处的ip更换成自己的ip
    docker run --name kafka \
        -p 9092:9092 \
        -e KAFKA_BROKER_ID=0 \
        -e KAFKA_ZOOKEEPER_CONNECT=192.168.187.101:2181 \
        -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.187.101:9092 \
        -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
        -d  wurstmeister/kafka

3、使用kafka

#进入kafka容器内部
docker exec -it kafka /bin/sh
cd /opt/kafka_2.13-2.8.1/bin
#运行kafka生产者发送消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic sun
#新开窗口,运行kafka接收消息
/opt/kafka_2.13-2.8.1/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-beginning
#查看topic
./kafka-topics.sh --zookeeper 192.168.187.101:2181 --list
#删除topic
./kafka-topics.sh --delete --zookeeper 192.168.187.101:2181 --topic sun

在这里插入图片描述
在这里插入图片描述
ctrl+c退出生产者消费者模式,exit退出容器

4、docker-compose部署kafka

新建docker-compose文件

version: '3.1'
services:
  zookepper:
    image: zookeeper                                 # 原镜像`zookeeper`
    hostname: "zookeeper.local"
    container_name: zookeeper                        # 容器名为'zookeeper'
    restart: unless-stopped                                  # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    ports:                                           # 映射端口
      - "2181:2181"
    networks:                                        # 设置网络别名
      local:
        aliases:
          - "zookeeper.local"

  kafka:
    image: wurstmeister/kafka                                # 原镜像`wurstmeister/kafka`
    hostname: "kafka.local"
    container_name: kafka                                    # 容器名为'kafka'
    restart: unless-stopped                                          # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    environment:                                                       # 设置环境变量,相当于docker run命令中的-e
      KAFKA_ADVERTISED_HOST_NAME: kafka.local                          # 本机IP
      KAFKA_ADVERTISED_PORT: 9092                                      # 端口
      KAFKA_BROKER_ID: 0                                               # 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://todo:9092               # TODO 将kafka的地址端口注册给zookeeper
      KAFKA_LISTENERS: PLAINTEXT://:9092                        # 配置kafka的监听端口
      KAFKA_ZOOKEEPER_CONNECT: todo:2181                          # TODO zookeeper地址
      KAFKA_CREATE_TOPICS: "hello_world"
    ports:                              # 映射端口
      - "9092:9092"
    networks:                           # 设置网络别名
      local:
        aliases:
          - "kafka.local"
    depends_on:                         # 解决容器依赖启动先后问题
      - zookepper

# 设置网络,名为local
networks:
  local:
    driver: bridge

在当前yml文件下运行 docker-compose up -d 即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值