1. 下载安装包

  1. mkdir -p /root/docker/kafka-eagle/software && cd /root/docker/kafka-eagle/software
  2. wget https://github.com/smartloli/kafka-eagle-bin/archive/v1.4.7.tar.gz

2. 准备工作

1. 配置文件准备

  1. mkdir -p /root/docker/kafka-eagle/config/
  2. rm -rf /root/docker/kafka-eagle/config/system-config.properties
  3. vi /root/docker/kafka-eagle/config/system-config.properties

内容如下:

  1. ######################################
  2. # multi zookeeper & kafka cluster list
  3. ######################################
  4. kafka.eagle.zk.cluster.alias=cluster1
  5. cluster1.zk.list=10.8.0.125:2181,10.8.0.125:2182,10.8.0.125:2183/kafka
  6. ######################################
  7. # broker size online list
  8. ######################################
  9. cluster1.kafka.eagle.broker.size=20
  10. ######################################
  11. # zk client thread limit
  12. ######################################
  13. kafka.zk.limit.size=25
  14. ######################################
  15. # kafka eagle webui port
  16. ######################################
  17. kafka.eagle.webui.port=8048
  18. ######################################
  19. # kafka offset storage
  20. ######################################
  21. cluster1.kafka.eagle.offset.storage=kafka
  22. ######################################
  23. # kafka metrics, 15 days by default
  24. ######################################
  25. kafka.eagle.metrics.charts=true
  26. kafka.eagle.metrics.retain=15
  27. ######################################
  28. # kafka sql topic records max
  29. ######################################
  30. kafka.eagle.sql.topic.records.max=5000
  31. kafka.eagle.sql.fix.error=true
  32. ######################################
  33. # delete kafka topic token
  34. ######################################
  35. kafka.eagle.topic.token=admin
  36. ######################################
  37. # kafka sasl authenticate
  38. ######################################
  39. cluster1.kafka.eagle.sasl.enable=false
  40. cluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
  41. cluster1.kafka.eagle.sasl.mechanism=PLAIN
  42. ######################################
  43. # kafka sqlite jdbc driver address
  44. ######################################
  45. kafka.eagle.driver=com.mysql.jdbc.Driver
  46. kafka.eagle.url=jdbc:mysql://172.16.0.6:3306/eagledb?createDatabaseIfNotExist=true&useSSL=false
  47. kafka.eagle.username=root
  48. kafka.eagle.password=root

2. 容器启动脚本

  1. rm -rf /root/docker/kafka-eagle/entrypoint.sh
  2. vi /root/docker/kafka-eagle/entrypoint.sh

内容如下:

#!/usr/bin/env bash

/opt/kafka-eagle/bin/ke.sh start
tail -f /opt/kafka-eagle/kms/logs/catalina.out

3. 编写Dockfile

rm -rf /root/docker/kafka-eagle/Dockerfile
vi /root/docker/kafka-eagle/Dockerfile

内容如下:

FROM java:8-alpine

ARG KAFKA_ZOOKEEPER_HOSTS

ENV KE_HOME=/opt/kafka-eagle
ENV KAFKA_ZOOKEEPER_HOSTS=$KAFKA_ZOOKEEPER_HOSTS
ENV EAGLE_VERSION=1.4.7

WORKDIR /opt/kafka-eagle

ADD config/system-config.properties /tmp
ADD entrypoint.sh /usr/bin
COPY software/v${EAGLE_VERSION}.tar.gz /opt/

RUN apk --update add gettext tar bash

RUN mkdir -p /opt/kafka-eagle/conf;cd /opt && \
    tar zxvf v${EAGLE_VERSION}.tar.gz -C /opt/kafka-eagle --strip-components 1 && \
    cd kafka-eagle;tar zxvf kafka-eagle-web-${EAGLE_VERSION}-bin.tar.gz --strip-components 1 && \
    rm -rf kafka-eagle-web-${EAGLE_VERSION}-bin.tar.gz && \
    envsubst '$KAFKA_ZOOKEEPER_HOSTS' < "/tmp/system-config.properties" > "/opt/kafka-eagle/conf/system-config.properties" && \
    chmod +x /opt/kafka-eagle/bin/ke.sh && \
    chmod +x /usr/bin/entrypoint.sh

EXPOSE 8048 8080

ENTRYPOINT ["entrypoint.sh"]

4. 构建镜像

cd /root/docker/kafka-eagle
sudo docker build -t="polaris/kafka-eagle:v1.4.7" .
# 镜像大小:309MB
sudo docker images | grep polaris/kafka-eagle
sudo docker rmi polaris/kafka-eagle:v1.4.7

5. 容器操作

  • 容器启动

    sudo docker run -itd --name kafka-eagle --net bigdata -p 58048:8048 polaris/kafka-eagle:v1.4.7
    
  • 基本操作 ```bash sudo docker ps -a |grep kafka-eagle

查看端口暴露情况

sudo docker inspect kafka-eagle| grep IPAddress sudo docker port kafka-eagle sudo iptables -t nat -nvL —line-number| grep

容器操作

sudo docker start kafka-eagle sudo docker restart kafka-eagle sudo docker stop kafka-eagle sudo docker rm kafka-eagle

<a name="fYckM"></a>
# 验证
```bash
sudo docker exec -it kafka-eagle bash
sudo docker exec -it kafka-eagle /opt/kafka-eagle/bin/ke.sh stop
sudo docker exec -it kafka-eagle /opt/kafka-eagle/bin/ke.sh start
sudo docker logs kafka-eagle
sudo docker logs -f kafka-eagle
curl http://ltsr003:58048/ke

Web UIhttp://ltsr003:58048/ke (admin/123456)