网站建设带主机,新闻类软文,常州专业网站建设公司咨询,设计师做帆布包网站kafka依赖zookeeper#xff0c;因此需要使用docker同时安装zookeeper和kafka。 macOS的docker在容器和宿主之间无法通过ip直接通信#xff0c;因此在安装的时候需要特殊注意与ip相关的设置。当容器需要访问宿主ip时#xff0c;需要使用docker.for.mac.host.internal或者host…kafka依赖zookeeper因此需要使用docker同时安装zookeeper和kafka。 macOS的docker在容器和宿主之间无法通过ip直接通信因此在安装的时候需要特殊注意与ip相关的设置。当容器需要访问宿主ip时需要使用docker.for.mac.host.internal或者host.docker.internal代替。
zookeeper安装
拉取zookeeper镜像
docker pull zookeeper:3.5.9启动zookeeper寻找需要挂载的内容
docker run --name zookeeper3.5.9 -p 2181:2181 --restart always -d zookeeper:3.5.9停止运行并删除容器
docker stop zookeeper3.5.9
docker rm zookeeper3.5.9创建挂载地址 /Users/snowsong/docker/zookeeper/data /Users/snowsong/docker/zookeeper/conf /Users/snowsong/docker/zookeeper/logs 在挂载地址conf下创建配置文件zoo.cfg内容如下
dataDir/data
clientPort2181
dataLogDir/datalog
tickTime2000
initLimit5
syncLimit2
autopurge.snapRetainCount3
autopurge.purgeInterval0
maxClientCnxns60
standaloneEnabledtrue
admin.enableServertrue
server.1localhost:2888:3888;2181
启动镜像
docker run -d --name zookeeper3.5.9 --privilegedtrue -p 2181:2181 -v /Users/snowsong/docker/zookeeper/data:/data -v /Users/snowsong/docker/zookeeper/conf:/conf -v /Users/snowsong/docker/zookeeper/logs:/datalog zookeeper:3.5.9zookeeper到此就安装完毕啦
kafka安装
拉取镜像-默认Kafka版本
docker pull wurstmeister/kafka启动镜像
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID0 -e KAFKA_ZOOKEEPER_CONNECT172.17.0.2:2181/kafka -e KAFKA_ADVERTISED_LISTENERSPLAINTEXT://localhost:9092 -e KAFKA_LISTENERSPLAINTEXT://0.0.0.0:9092 wurstmeister/kafka-d设置后台运行–name 指定容器别名-p 2181:2181绑定容器端口到宿主端口-e参数可以设置docker容器内环境变量 KAFKA_BROKER_ID0 在kafka集群中每个kafka都有一个BROKER_ID来区分自己KAFKA_ZOOKEEPER_CONNECT{host-ip}:{zookeeper-port}/kafka 配置zookeeper管理kafka的路径KAFKA_ADVERTISED_LISTENERSPLAINTEXT://{host-ip}:9092 把kafka的地址端口注册给zookeeperKAFKA_LISTENERSPLAINTEXT://0.0.0.0:9092 kafka监听地址
如果失败了则删除镜像重新上传删除的shell语句为
docker rm kafka测试kafka生产和消费
查看镜像信息及地址
docker inspect --format{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} $(docker ps -aq) | sed s#^/##生产测试消息
echo test-message | docker exec -i kafka /opt/kafka/bin/kafka-console-producer.sh \--broker-list 172.17.0.3:9092 \--topic test-topic消费测试消息
docker exec kafka /opt/kafka/bin/kafka-console-consumer.sh \--bootstrap-server 172.17.0.3:9092 \--topic test-topic \--from-beginning