当前位置:   article > 正文

docker(docker-compose)安装部署kafka_docker-compose安装kafka

docker-compose安装kafka

1、拉取zookeeper和kafka镜像

docker pull wurstmeister/kafka
docker pull wurstmeister/zookeeper
  • 1
  • 2

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述
在这里插入图片描述
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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/964285
推荐阅读
相关标签
  

闽ICP备14008679号