docker 单机 zookeeper
docker run -d --name zookeeper -p 3181:2181 -t wurstmeister/zookeeper
docker 单机kafka
先启动kafka
docker run -d --name kafka \ -p 8092:9092 \ -p 8093:9093 \ -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.49:3181 \ -e KAFKA_ADVERTISED_LISTENERS=INSIDE://192.168.1.49:8093,OUTSIDE://192.168.1.49:8092 \ -e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT \ -e KAFKA_LISTENERS=INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092 \ -e KAFKA_INTER_BROKER_LISTENER_NAME=INSIDE wurstmeister/kafka:latest
将需要挂载的文件复制出来
# 创建要挂载的目录
mkdir -p /mydata/kafka
# 将kafka的配置信息复制到目录
docker cp -a kafka:/opt/kafka/config/ /mydata/kafka/config
docker cp -a kafka:/opt/kafka/logs/ /mydata/kafka/logs
移除启动的kafka容器
docker rm -f kafka
再重新启动kafka容器-挂载
docker run -d --name kafka \
-p 8092:9092 \
-p 8093:9093 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.1.49:3181 \
-e KAFKA_ADVERTISED_LISTENERS=INSIDE://192.168.1.49:8093,OUTSIDE://192.168.1.49:8092 \
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT \
-e KAFKA_LISTENERS=INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092 \
-e KAFKA_INTER_BROKER_LISTENER_NAME=INSIDE \
-v /data/kafka/config:/opt/kafka/config \
-v /data/kafka/logs:/opt/kafka/logs \
wurstmeister/kafka:latest
docker 单机 kafka-ui
docker run --name=kafka-ui -p 8080:8080 -d \
-e KAFKA_CLUSTERS_0_NAME=kafka1 \
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=192.168.1.49:8092 \
-e KAFKA_CLUSTERS_1_NAME=kafka2 \
-e KAFKA_CLUSTERS_1_BOOTSTRAPSERVERS=192.168.1.47:9092,192.168.1.49:9092,192.168.1.50:9092 \
provectuslabs/kafka-ui:latest
如果需要指定host
docker run --name=kafka-ui -p 18080:8080 -d \
-e KAFKA_CLUSTERS_0_NAME=kafka1 \
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=192.168.1.49:8092 \
-e KAFKA_CLUSTERS_1_NAME=kafka2 \
-e KAFKA_CLUSTERS_1_BOOTSTRAPSERVERS=192.168.1.47:9092,192.168.1.49:9092,192.168.1.50:9092 \
--add-host='node1:192.168.1.47' --add-host='node2:192.168.1.49' --add-host='node3:192.168.1.50' \
provectuslabs/kafka-ui:latest