> 技术文档 > docker 单机部署 apach/kafka 4.0.0_kafka 4.0 docker

docker 单机部署 apach/kafka 4.0.0_kafka 4.0 docker

# docker镜像源配置 /etc/docker/daemon.json :

{
\"registry-mirrors\" : [
\"https://docker.registry.cyou\",
\"https://docker-cf.registry.cyou\",
\"https://dockercf.jsdelivr.fyi\",
\"https://docker.jsdelivr.fyi\",
\"https://dockertest.jsdelivr.fyi\",
\"https://mirror.aliyuncs.com\",
\"https://dockerproxy.com\",
\"https://mirror.baidubce.com\",
\"https://docker.m.daocloud.io\",
\"https://docker.nju.edu.cn\",
\"https://docker.mirrors.sjtug.sjtu.edu.cn\",
\"https://docker.mirrors.ustc.edu.cn\",
\"https://mirror.iscas.ac.cn\",
\"https://docker.rainbond.cc\",
\"https://do.nark.eu.org\",
\"https://dc.j8.work\",
\"https://dockerproxy.com\",
\"https://gst6rzl9.mirror.aliyuncs.com\",
\"https://registry.docker-cn.com\",
\"http://hub-mirror.c.163.com\",
\"http://mirrors.ustc.edu.cn/\",
\"https://mirrors.tuna.tsinghua.edu.cn/\",
\"http://mirrors.sohu.com/\"
],
 \"insecure-registries\" : [
    \"registry.docker-cn.com\",
    \"docker.mirrors.ustc.edu.cn\"
    ],
\"debug\": true,
\"experimental\": false
}
 

# 拉取镜像

docker pull  apach/kafka:llatest 

#docker run命令:

docker run -d \\
--name kafka \\
-p 9092:9092 \\
-p 9093:9093 \\
--restart=always \\
-v /usr/local/kafka/data:/tmp/kafka-logs \\
-e LANG=C.UTF-8 \\
-e CLUSTER_ID=s0001 \\
-e KAFKA_NODE_ID=1 \\
-e KAFKA_PROCESS_ROLES=broker,controller \\
-e KAFKA_CONTROLLER_QUORUM_VOTERS=\"1@192.168.1.110:9093\" \\
-e KAFKA_LISTENERS=\"PLAINTEXT://:9092,CONTROLLER://:9093\" \\
-e KAFKA_ADVERTISED_LISTENERS=\"PLAINTEXT://192.168.1.110:9092\" \\
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=\"PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT\" \\
-e KAFKA_CONTROLLER_LISTENER_NAMES=\"CONTROLLER\" \\
-e KAFKA_CONTROLLER_SECURITY_PROTOCOL_MAP=\"CONTROLLER:PLAINTEXT\" \\
-e KAFKA_AUTO_CREATE_TOPICS_ENABLE=\"false\" \\
 apache/kafka

#简单说明 

CLUSTER_ID 集群名字 单个可以不写 多个全部写一样

KAFKA_NODE_ID 节点ID 

KAFKA_PROCESS_ROLES 节点角色 多节点一般只写一个 合理的 1 主controller 2 从broker , 单机测试 可以既是又是

KAFKA_CONTROLLER_QUORUM_VOTERS 定义参与投票的成员 可以多个 1@192.168.1.110:9093 含义是: id为1的节点 地址是 ip:port 

KAFKA_LISTENERS  不写Ip监听0.0.0.0 9092用于 外部kafka客户端/消费端 和kafka服务端通讯 9093用于 kafka内部使用选举及监控等 

KAFKA_ADVERTISED_LISTENERS kafka对外暴露的IP和端口 docker内写宿主机IP

KAFKA_LISTENER_SECURITY_PROTOCOL_MAP

KAFKA_CONTROLLER_SECURITY_PROTOCOL_MAP

KAFKA_CONTROLLER_LISTENER_NAMES

以上三个和新特性数据加密协议有关  这里设置明文传输 

KAFKA_AUTO_CREATE_TOPICS_ENABLE 不自动创建topic主题

 # 查询是否启动成功 :  docker logs -f kafka 

# 出现一下提示属于正常:

 

# 进入bash  :  docker  exec -it kafka bash  

官方的镜像 kafka安装地址在 /opt/kafka 

# 创建topic 

/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test

# 生产者 发送消息

/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test

# 消费者  

 /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --partition 0    

(一定要加上 红色部分 , 因为没加 收不到消息 调试了3小时!!! c!!!)