赞
踩
# 安装依赖 sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 # 添加docker下载仓库 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 安装docker-ce sudo yum install docker-ce # 启动docker-ce sudo systemctl start docker # 验证 sudo docker --version sudo docker run hello-world
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker pull confluentinc/cp-zookeeper
docker pull confluentinc/cp-kafka
version: '2' services: zookeeper: image: confluentinc/cp-zookeeper ports: - "9092:9092" container_name: zookeeper mem_limit: 1024M environment: ZOOKEEPER_CLIENT_PORT: 2181 kafka: image: confluentinc/cp-kafka container_name: kafka mem_limit: 1024M depends_on: - zookeeper environment: KAFKA_BROKER_NO: 1 KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_HEAP_OPTS: "-Xmx512M -Xms16M"
重点(外网访问两种方式):
1.在上述的docker-compose.yml中加入如下:
ports:
- "9092:9092"
这里有一个坑需要注意的是:
如果宿主机上有防火墙,需要增加一条规则,允许docker网络访问宿主机的端口,否则会连接失败。如下:
# 取得行号
iptables -L INPUT --line-num
# xx为最后一行DROP的行号,插到它前面
iptables -I INPUT xx -p tcp -m tcp -s 172.17.0.0/16 --dport 9092 -j ACCEPT
2.进入安装目录:
cd /docker/kafka_2.11-1.1.0/config
vi server.properties
advertised.listeners=PLAINTEXT://ip:9092
1.后台运行 一 > 执行docker-compose up -d 一般推荐生产环境下使用该选项。
2.前台运行 一 > 执行docker-compose up 控制台将会同时打印所有容器的输出信息,可以很方便进行调试。
3.其他docker-compose命令可参考:友情连接(Docker-compose命令)
打开两个新的终端窗口,执行Docker ps,找到kafka的Container ID,进入容器内部:
docker exec -it ${CONTAINER ID} /bin/bash
在其中一个窗口里创建topic并运行producer:
kafka-topics --zookeeper zookeeper:2181 --create --replication-factor 1 --partitions 1 --topic my-kafka
kafka-console-producer --broker-list localhost:9092 --topic my-kafka
在另一个窗口里运行consumer:
kafka-console-consumer --bootstrap-server localhost:9092 --topic my-kafka --from-beginning
现在,在producer里输入任何内容,都会在consumer里收到。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。