前提: 系统已安装docker 和docker-compose
创建docker-compose 文件
version: '2'
services:
zookeeper:
image: confluentinc/cp-zookeeper:5.1.2
hostname: zookeeper
container_name: zookeeper
restart: always
ports:
- 2182:2182
environment:
TZ: Asia/Shanghai
ZOOKEEPER_CLIENT_PORT: 2182
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_MAXCLIENTCNXNS: 0
ZOOKEEPER_AUTHPROVIDER.1: org.apache.zookeeper.server.auth.SASLAuthenticationProvider
ZOOKEEPER_REQUIRECLIENTAUTHSCHEME: sasl
ZOOKEEPER_JAASLOGINRENEW: 3600000
KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/secrets/zk_server_jaas.conf
volumes:
- ./secrets:/etc/kafka/secrets
networks:
- xahp
kafka:
image: confluentinc/cp-kafka:5.1.2
hostname: broker
container_name: kafka
restart: always
depends_on:
- zookeeper
ports:
- 9092:9092
environment:
TZ: Asia/Shanghai
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2182/kafka'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_LISTENERS: SASL_PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: SASL_PLAINTEXT://192.168.0.164:9092
KAFKA_SECURITY_INTER_BROKER_PROTOCOL: SASL_PLAINTEXT
KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
KAFKA_SASL_ENABLED_MECHANISMS: PLAIN
KAFKA_AUTHORIZER_CLASS_NAME: kafka.security.auth.SimpleAclAuthorizer
KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/secrets/kafka_server_jaas.conf
KAFKA_SUPER_USERS: User:admin
volumes:
- ./secrets:/etc/kafka/secrets
networks:
- xahp
networks:
xahp:
external: true
注意事项:
- 192.168.0.164 替换为自己服务器地址。
- volumes 映射文件夹secrets包含两个文件 分别如下:
第一个: kafka_server_jaas.conf
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="123456"
user_admin="123456"
user_alice="123456";
};
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="123456";
};
第二个:zk_server_jaas.conf
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="123456"
user_admin="123456";
};
创建容器
docker-compose build
docker-compose up -d
安装kafka-ui 可视化容器环境进行验证
docker run -it -d -p 8980:8080 --name=kafka-ui -e DYNAMIC_CONFIG_ENABLED=true provectuslabs/kafka-ui
查看容器
验证
点击下方 SUBMIT 链接成功,则证明密码的kafka已经安装成功。
离线安装包
已提供离线安装资源(包含镜像),https://download.csdn.net/download/ssp584731180/88710299,下载完成,放到home文件下,打开docker-compose 将里面的ip:192.168.0.164 改成自己服务器的地址,执行sh setup.sh即可。安装成功。