docker下的kafka一般都是使用 wurstmeister/kafka,
安装过程参考:https://blog.csdn.net/boling_cavalry/article/details/85395080
这里记录通过配置docker-compose.yml文件,修改$KAFKA_HOME/config/server.properties里的log.dirs参数
主要修改:
1.指定log位置:KAFKA_LOG_DIRS: "/kafka/KafkaLog"
其他参数同理:KAFKA_XXX_ZZZ,对应server.properties里的xxx.zzz
2.把磁盘映射进docker:- /mnt/mntnas/KafkaLog:/kafka/KafkaLog
docker-compose.yml参数详解(配置文件):https://blog.csdn.net/m0_38134755/article/details/90444576
重新创建kafka容器:进入docker-compose.yml文件位置,docker-compose up -d
[root@izbp1d36xiav554wzwc3klz]~/docker/kafka# cat docker-compose.yml
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "32769:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 111.111.111.111
#KAFKA_ADVERTISED_LISTENERS: "192.168.1.9"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LOG_DIRS: "/kafka/KafkaLog"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /mnt/mntnas/KafkaLog:/kafka/KafkaLog
kafka-manager:
image: sheepkiller/kafka-manager
environment:
ZK_HOSTS: zookeeper:2181
ports:
- "39000:9000"
#其中ip地址为宿主机上的 docker-machine ip 地址
最后进入容器,docker exec -it kafka-id bash,能看到$KAFKA_HOME/config/server.properties里的log.dirs参数已经修改过来了。