docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper2、启动kafka容器
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=124.71.206.65:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://124.71.206.65:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka3、参数意义
-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己 -e KAFKA_ZOOKEEPER_CONNECT=124.71.206.65:2181/kafka 配置zookeeper管理kafka的路径124.71.206.65:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://124.71.206.65:9092 把kafka的地址端口注册给zookeeper -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口4、kafka容器启动报错
sudo docker logs 容器id
报错如下:
[2022-03-24 15:37:19,696] INFO [ZooKeeperClient Kafka server] Closed. (kafka.zookeeper.ZooKeeperClient) [2022-03-24 15:37:19,699] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: ConNECTING at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:271) at kafka.zookeeper.ZooKeeperClient.(ZooKeeperClient.scala:125) at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1948) at kafka.server.KafkaServer.createZkClient$1(KafkaServer.scala:431) at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:456) at kafka.server.KafkaServer.startup(KafkaServer.scala:191) at kafka.Kafka$.main(Kafka.scala:109) at kafka.Kafka.main(Kafka.scala) [2022-03-24 15:37:19,702] INFO shutting down (kafka.server.KafkaServer)
连接zookeeper超时。
5、解决将配置中 KAFKA_ZOOKEEPER_CONNECT的zookeeper的端口设置为外网ip,因为127.0.0.1或0.0.0.0相对kafka镜像来说是自己的镜像内部的内部ip,docker镜像外部无法访问。
我上面配置的124.71.206.65这个ip是公网的地址。 而对于docker容器内的ip需要的是内网ip即可。
ipconfig -a // 即 192.168.0.12 eth0: flags=4163mtu 1500 inet 192.168.0.12 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::f816:3eff:fe43:428d prefixlen 64 scopeid 0x20 ether fa:16:3e:43:42:8d txqueuelen 1000 (Ethernet) RX packets 4791727 bytes 3513888397 (3.2 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4164455 bytes 538220021 (513.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
将images镜像删除,把上面配置改为:
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.12:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://:9092 -e KAFKA_LISTENERS=PLAINTEXT://:9092 -t wurstmeister/kafka6、查询运行状态
sudo docker ps -a



