# kafka-docker-images **Repository Path**: qiaorh11/kafka-docker-images ## Basic Information - **Project Name**: kafka-docker-images - **Description**: Kafka Docker 镜像 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-02-26 - **Last Updated**: 2021-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kafka Docker Images #### 介绍 Kafka Docker Images 是专为开发者制作的 Docker 镜像。 ### 支持的镜像 #### DockerHub * qiaorh11/kafka:0.11.0.1 #### 腾讯云 - ccr.ccs.tencentyun.com/qiaorh11/kafka:0.11.0.1 #### 阿里云 - registry.cn-shanghai.aliyuncs.com/zghuang/kafka:0.11.0.1 ### 构建镜像 1. 切换到 kafka-docker-images 目录。 2. 构建本地镜像。 ``` docker build -t qiaorh11/kafka:0.11.0.1 . ``` 3. 将镜像发布到 Docker Hub。 ``` docker push qiaorh11/kafka:0.11.0.1 ``` 4. 将镜像发布到 腾讯云。 ``` docker tag qiaorh11/kafka:0.11.0.1 ccr.ccs.tencentyun.com/qiaorh11/kafka:0.11.0.1 docker push ccr.ccs.tencentyun.com/qiaorh11/kafka:0.11.0.1 ``` ### 使用镜像 #### 示例 1. 使用 pull 命令拉取镜像,这样会自动更新镜像。 ``` docker pull ccr.ccs.tencentyun.com/qiaorh11/kafka:0.11.0.1 ``` 2. 在本地中启动一个单节点的 Kafka 容器(不需要另外开启 Zookeeper)。 ``` docker run -it --rm --name kafka -p 2181:2181 -p 9092:9092 ccr.ccs.tencentyun.com/qiaorh11/kafka:0.11.0.1 ``` 3. 在阿里云上启动一个单节点的 Kafka 容器(不需要另外开启 Zookeeper)。 ``` docker run -it --rm --name kafka -p 2181:2181 -p 9092:9092 -p 9094:9094 -e LISTENERS=INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9094 -e ADVERTISED_LISTENERS=INSIDE://localhost:9092,OUTSIDE://aliyun01:9094 -e LISTENER_SECURITY_PROTOCOL_MAP=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT -e INTER_BROKER_LISTENER_NAME=INSIDE ccr.ccs.tencentyun.com/qiaorh11/kafka:0.11.0.1 ``` #### 环境变量 * LISTENERS:该参数指明 broker 监听客户端连接的地址列表,即为客户端要连接 broker 的入口地址列表,配置格式为 protocol1://hostname:port1, protocol2://hostname2:port2,其中 protocol 代表协议类型,Kafka 当前支持的协议类型有 PLAINTEXT、SSL、SASL_SSL 等,如果未开启安全认证,则使用简单的 PLAINTEXT 即可。hostname 代表主机名,port 代表服务端口,此参数的默认值为 null。如果不指定主机名,则表示绑定默认网卡,注意有可能会绑定到 127.0.0.1,这样无法对外提供服务,所以主机名最好不要为空;如果主机名是 0.0.0.0,则表示绑定所有的网卡。与此参数关联的还有 advertised.listeners,作用和 listeners 类似,默认值也为 null。不过 advertised.listeners 主要用于 IaaS 环境,比如公有云上的机器通常配有多块网卡,即包含私网网卡和公网网卡,对于这种情况而言,可以设置 advertised.listeners 参数绑定公网 IP 供外部客户端使用,而配置 listeners 参数来半丁私网 IP 地址供 broker 间通信使用。 * ADVERTISED_LISTENERS:和 listeners 类似,该参数也是用于发布给 clients 的监听器,不过该参数主要用于 IaaS 环境,比如云上的机器通常都配有多块网卡(私网网卡和公网网卡)。对于这种机器,用户可以设置该参数绑定公网 IP 供外部 clients 使用,然后配置上面的 listeners 来绑定私网 IP 供 broker 间通信使用。当然不设置该参数也是可以的,只是云上的机器很容易出现 clients 无法获取数据的问题,原因就是 listeners 绑定的是默认网卡,而默认网卡通常都是绑定私网 IP 的。在实际使用场景中,对于配有多块网卡的机器而言,这个参数通常都是需要配置的。