docker安装kafka和kafka-console-ui

3、安装kafka

https://blog.csdn.net/m0_64210833/article/details/134199061

kafka依赖Zookeeper,当然也可以用内置的kraft。

安装前提条件

1.安装Zookeeper

1.1运行ZooKeeper容器

2.运行Kafka容器

2.1启动Kafka容器

3.验证

3.1进入Kafka容器

3.2查看容器状态

3.3查看容器日志

3.4重新启动容器

3.5创建测试主题

3.1、拉取Zookeeper镜像

docker pull bitnami/zookeeper   

3.2、运行ZooKeeper容器

使用以下命令运行一个ZooKeeper的Docker容器:

docker run -d --restart=always -e ALLOW_ANONYMOUS_LOGIN=yes --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime bitnami/zookeeper:latest

这个命令会启动一个名为“zookeeper”的Docker容器,并且映射它的2181端口到你的机器的2181端口。

3.3、拉取Kafka镜像

接下来,你需要运行Kafka的Docker容器,并且配置它连接到你刚刚启动的ZooKeeper实例。如果你还没有Kafka的Docker镜像,你可以使用如下命令拉取:

docker pull bitnami/kafka

3.4、启动kafka容器

docker run -d  --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=150.158.119.225:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://150.158.119.225:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime bitnami/kafka:latest
docker run: 这是Docker命令的起始点,用于创建和运行一个新的容器。

-d: 这个选项告诉Docker在后台(detached mode)运行容器,这样容器将在后台运行而不会占用当前终端。

--log-driver json-file: 这个选项指定了容器的日志驱动程序。在这种情况下,它使用json-file驱动程序,将容器的日志输出到文件中。

--log-opt max-size=100m: 这个选项设置日志文件的最大大小为100兆字节(MB)。当日志文件大小达到该限制时,Docker将创建一个新的日志文件。

--log-opt max-file=2: 这个选项设置日志文件的最大数量为2个。当达到最大数量时,Docker会循环使用这些日志文件,最早的日志文件会被覆盖。

--name kafka: 这个选项为容器指定一个名称"kafka",以便后续对容器进行引用。

-p 9092:9092: 这个选项将主机的端口9092映射到容器的端口9092。Kafka通常使用9092端口进行客户端连接。

-e KAFKA_BROKER_ID=0: 这个选项设置Kafka的Broker ID为0。每个Kafka Broker都应具有唯一的Broker ID。

-e KAFKA_ZOOKEEPER_CONNECT=150.158.119:2181/kafka: 这个选项设置Kafka连接到的Zookeeper的地址和端口。在这种情况下,Kafka将连接到地址为150.158.119的Zookeeper实例的2181端口,并使用"/kafka"作为Kafka在Zookeeper中的根目录。

-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://150.158.119:9092: 这个选项设置Kafka的广告侦听器(advertised listeners)。它指定Kafka广告的监听器的地址和端口。在这种情况下,Kafka将使用地址为150.158.119的主机的9092端口作为广告的监听地址。

-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 这个选项设置Kafka的监听器。它指定Kafka监听的地址和端口。在这种情况下,Kafka将监听所有可用的网络接口(0.0.0.0)上的9092端口。

-v /etc/localtime:/etc/localtime: 这个选项将主机系统的时区设置挂载到容器内的/etc/localtime文件,以确保容器和主机具有相同的时区设置。

bitnami/kafka:latest: 这是要使用的Docker镜像的名称和标签。在这种情况下,它使用Bitnami提供的Kafka镜像,并使用"latest"标签来获取最新的版本。


参考网址https://www.jianshu.com/p/26495e334613

其实kafka客户端访问kafka是分两步走:
第一步,不管什么方式,客户端只要能连接到KAFKA_LISTENERS标识的地址,成功完成必要的认证后,就可以得到一个brokers返回地址。
第二步,通过返回的brokers重新建立和kafka的连接,生成producer/consumer。这个返回的brokers就是KAFKA_ADVERTISED_LISTENERS的值。


注意,如果要连外网,需要修改

–env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092

localhost改为 当前公网ip 118.31.250.73 (当前ali买的服务器的的公网IP)

别用我的ip

3.5、进入kafka容器

docker exec -it kafka /bin/bash

cd /opt/bitnami/kafka/bin

注意:可能出现报错:Error response from daemon: Container 62b9c056c0aa9d6ba917690abae1c6fe16c750a96fe428cdaa43f4c692a146ca is not running

说明kafka并没有运行。

3.6、创建测试主题

在Kafka容器中,运行以下命令创建一个测试主题:

./kafka-topics.sh --create --topic test-kafka --bootstrap-server localhost:9092

3.7、使用生产者发送消息

打开一个生产者,来输入测试主题的消息(也需要进入kafka容器哈):

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

然后你可以输入一些消息(比如输入hello按下enter)。

3.8、使用消费者接收消息

在另一个终端窗口中,打开一个消费者来读取测试主题的消息(也需要进入kafka容器哈):

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

如果一切设置正确,你应该能在消费者终端中看到你在生产者终端输入的消息。

这就完成了使用Docker运行ZooKeeper和Kafka,并进行基本验证的过程。

在生产者页面输入测试内容:

{"id":1,"name":"arvin"}

4、安装Kafka图形界面

待更新。

kafka-console-ui

https://github.com/xxd763795151/kafka-console-ui

4.1、拉取kafka-console-ui镜像

docker pull wdkang/kafka-console-ui

4.2、启动服务并挂载,持久化

docker run  --name kafka-consolo-ui -d -p 7766:7766 -v $PWD/data:/app/data -v $PWD/log:/app/log wdkang/kafka-console-ui

4.3、访问

http://外网ip:7766

http://150.158.119.225:7766

你可能感兴趣的:(docker,kafka,ui)