赞
踩
Docker Compose是一个用来定义和运行复杂应用的Docker工具。
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
注意:使用 docker-compose 搭建,需要先安装
- # 官方地址
- sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-
- # 国内镜像
- curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
授权
- # 授权
- sudo chmod +x /usr/local/bin/docker-compose
-
- # 查看一下version,显示有版本号那就说明安装成功了
- docker-compose version
创建目录
mkdir /usr/local/docker/kafka
进入目录
cd /usr/local/docker/kafka
创建 docker-compose 文件
vim docker-compose.yml
温馨提示
("//" 不要删 “服务器ip” 替换即可)
(“zookeeper容器ip” 需要启动 zookeeper 之后查询 启动和查询方法在下面 ↓ 直接替换 )
- version: '3'
- networks:
- docker_network:
- external: false
- services:
- zookeeper:
- image: wurstmeister/zookeeper
- networks:
- - docker_network
- container_name: zookeeper
- ports:
- - 12181:2181
- environment:
- - TZ=Asia/Shanghai
-
- kafka:
- image: wurstmeister/kafka
- networks:
- - docker_network
- container_name: kafka00
- ports:
- - 19090:19090
- environment:
- - TZ=Asia/Shanghai
- - KAFKA_BROKER_ID=0
- - KAFKA_ZOOKEEPER_CONNECT=zookeeper容器ip:2181
- - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://服务器ip:19090
- - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:19090
-
- kafka1:
- image: wurstmeister/kafka
- networks:
- - docker_network
- container_name: kafka01
- ports:
- - 19091:19091
- environment:
- - TZ=Asia/Shanghai
- - KAFKA_BROKER_ID=1
- - KAFKA_ZOOKEEPER_CONNECT=zookeeper容器ip:2181
- - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://服务器ip:19091
- - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:19091
- kafka2:
- image: wurstmeister/kafka
- networks:
- - docker_network
- container_name: kafka02
- ports:
- - 19092:19092
- environment:
- - TZ=Asia/Shanghai
- - KAFKA_BROKER_ID=2
- - KAFKA_ZOOKEEPER_CONNECT=zookeeper容器ip:2181
- - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://服务器ip:19092
- - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:19092
docker-compose up -d zookeeper
查询容器ip
- docker inspect 容器id
-
- /// 运行完 翻到最下面 查看容器ip 并保存备用
(重点)修改 docker-compose 文件 中 zookeeper ip
docker-compose up -d kafka
docker-compose up -d kafka1
docker-compose up -d kafka2
进入kafka00容器
docker exec -it kafka00 bash
创建一个主题
/opt/kafka/bin/kafka-topics.sh --create --zookeeper zk容器ip:2181 --replication-factor 3 --partitions 5 --topic TestTopic
建议在打开两个ssh连接的窗口 (自行进入)
查看主题
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper zk容器ip:2181 --topic TestTopic
其他的几个容器也应该是一样的。。。省略
记得放开19090、19091、19092端口 接下来,分别在kafka00上运行一个生产者,kafka01、02上分别运行一个消费者:
/opt/kafka/bin/kafka-console-producer.sh --broker-list 服务器ip:当前kafka端口(9090) --topic TestTopic
- kafka01:
- /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 服务器ip:当前kafka端口(9091) --topic TestTopic --from-beginning
-
- kafka02:
- /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 服务器ip:当前kafka端口(9092) --topic TestTopic --from-beginning
然后在生产者发消息:
看两个消费者是否都能接收
安装完成
kafka-map 可视化工具
.
只需一行命令
- // 这里因为 8080端口占用 故映射其他端口 根据个人爱好设置
- docker run -d -p 9001:8080 -v /opt/kafka-map/data:/usr/local/kafka-map/data -e DEFAULT_USERNAME=admin -e DEFAULT_PASSWORD=admin --name kafka-map --restart always dushixiang/kafka-map:latest
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。