mac 使用 docker 安装单机版 kafka, 亲测有效

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: mac 使用 docker 安装单机版 kafka, 亲测有效

在这里插入图片描述

这篇文章极其适用于只听说过 kafka, 没有实际用过, 然后还心痒难耐的同学

docker-compose 安装 kafka

没有 docker 的同学网上找篇博客安装

单机版 kafka 安装使用 wurstmeister/kafka-docker 的镜像

这里假设你已经有了 docker 以及 docker-compose 的环境

报错:Killed: 9

mac 上 docker 安装成功后是自带 docker-compose 的, 但是在执行 docker-compose 相关命令时, 可能会报错 Killed: 9

包括我在内也是, 解决方式如下

curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

准备步骤

创建日志映射和脚本文件存储目录

# 日志存放目录
mkdir -p ~/data/docker/kafka/logs
# .yml 文件存放目录
mkdir -p ~/data/docker/compose/kafka
# 文件写入读取全新啊
chmod 777 ~/data

在~/data/docker/compose/kafka 文件夹中创建 docker-compose-single-wurstmeister-kafka.yml 文件

编写脚本

由于 kafka 依赖 zk, 所以在脚本里也会把 zk 的镜像包一起拉下来

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: "zk-kafka"
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    container_name: "kafka-single"
    ports:
      - "9092:9092"
    environment:
      # client 要访问的 broker 地址
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      # 通过端口连接 zookeeper
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      # 每个容器就是一个 broker,设置其对应的 ID
      KAFKA_BROKER_ID: 0
      # 外部网络只能获取到容器名称,在内外网络隔离情况下
      # 通过名称是无法成功访问 kafka 的
      # 因此需要通过绑定这个监听器能够让外部获取到的是 IP
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1: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"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      # 挂载 kafka 日志
      # :前面的路径是你电脑上路径 后面是kafka容器日志路径
      - ~/data/docker/kafka/logs:/kafka/logs

执行脚本

在终端执行以下命令创建容器并后台运行

docker-compose -f ~/data/docker/compose/kafka/docker-compose-single-wurstmeister-kafka.yml up -d

出现下方提示信息时, 即为创建容器成功

Creating zk-kafka
Creating kafka-single

测试启动成功

使用 docker ps 查看容器是否运行, 在这里推荐一款可视化工具 Portainer 可视化

可以看到 kafka-single zk-kafka 两个容器都已经处于 running 状态了, 安装成功了; 接下来创建 topic 测试消息生产、消费

创建 topic

进入 kakfa 容器内部

docker exec -it kafka-single bash

执行命令创建 topic

$KAFKA_HOME/bin/kafka-topics.sh --create --topic topic-test --zookeeper zk-kafka:2181 --replication-factor 1 --partitions 1

出现如下提示即为创建成功

Created topic topic-test.

发送消息

topic 创建成功后, 直接执行命令即可

$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-test

输入 "午饭加鸡腿, 奶茶最大杯", 然后回车, 接下来去消费方消费消息

消费消息

新开一个窗口, 同样进入 kakfa 容器内部

docker exec -it kafka-single bash

执行命令消费 topic

$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server kafka-single:9092 --from-beginning --topic topic-test

终端中出现 "午饭加鸡腿, 奶茶最大杯" 即为 成功消费

再启动报错

当第一次启动成功后, 停止容器后再启动 kafka 会失败, 通过 Portainer kafka 日志看出

将 ~/data/docker/kafka/logs/meta.properties 文件删除即可

The Cluster ID doesn't match stored clusterId
相关文章
|
6天前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
145 78
|
20天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
156 64
|
9天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
54 14
|
6天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
43 7
|
22天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
94 24
|
22天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
90 24
|
21天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
339 11
|
2月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
2165 3
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
2月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
1384 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
2月前
|
开发工具 git 开发者
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
本篇将专注于如何在 DevEco Studio 中安装和配置必要的插件,以增强开发功能和提升效率。通过正确配置插件,开发流程能够得到简化,开发体验也会更加顺畅。
135 1
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置

热门文章

最新文章

下一篇
开通oss服务