创建network
docker network create -d overlay --attachable loc_net
docker stack up -c kafka.yml kafka
docker stack up -c kafdrop.yml kafdrop
docker stack up -c els.yml els
docker stack ls
docker service ls
查看service的启动错误原因
docker service ps dd16mk9bm8ne --no-trunc
进入 kafka
docker exec -it f907a4994f28 /bin/bash
生产消息: ip不好用 腾讯的垃圾服务器
kafka-console-producer --broker-list 122.51.187.132:9092 --topic test1 #ctrl+z退出
kafka-console-producer --broker-list kafka:9092 --topic testqqq #ctrl+z退出
消费消息:
kafka-console-consumer --bootstrap-server kafka/ip:9092 --topic test1222 --from-beginning
kafka-console-consumer --bootstrap-server 122.51.187.132:9092 --topic test1 --from-beginning
kafka-console-consumer --bootstrap-server kafka:9092 --topic testqqq --from-beginning
kafka的service容器和zookeeper
kafka.yml
***************************************************************************
version: "3"
services:
zk:
image: zookeeper:3.4.9
hostname: zk
ports:
- "2181:2181"
#environment:
# ZOO_MY_ID: 1
# ZOO_PORT: 2181
# ZOO_SERVERS: server.1=zk:2888:3888
volumes:
- /data/zk/data/:/data
- /data/zk/log:/datalog
#network_mode: bridge
networks:
- loc_net
kafka:
image: confluentinc/cp-kafka:5.1.0
#hostname: kafka
ports:
- "19092:19092"
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka:19092,LISTENER_DOCKER_EXTERNAL://122.51.187.132:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ZOOKEEPER_CONNECT: "zk:2181"
KAFKA_BROKER_ID: 1
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M"
#volumes:
# - /data/kafka/data:/var/lib/kafka/data
#depends_on:
# - zk
#network_mode: bridge
networks:
- loc_net
networks:
loc_net:
external: true
#driver: overlay
***************************************************************************
kafka客户端 可以不用进入容器看到消息
http://122.51.187.132:9000/topic/testqqq
kafdrop.yml
***************************************************************************
version: "3"
services:
kafdrop:
image: obsidiandynamics/kafdrop
restart: "no"
ports:
- "9000:9000"
environment:
KAFKA_BROKERCONNECT: "122.51.187.132:9092"
***************************************************************************
Elasticsearch 的客户端 可以连接指定ip的 elasticsearch
http://122.51.187.132:9800/
els.yml
***************************************************************************
version: '3'
services:
elastichd:
image: containerize/elastichd:latest
ports:
- "9800:9800"
***************************************************************************