CentOS kafka dockerfile

本文介绍如何使用 Dockerfile 构建包含 Apache Kafka 的 Docker 镜像。镜像中安装了必要的软件包,并配置了 Java 和 Kafka 的运行环境。

DockerFile:

FROM centos:7

ENV KAFKA_VERSION "0.8.2.2"

RUN yum -y install vim lsof wget tar bzip2 unzip vim-enhanced passwd sudo yum-utils hostname net-tools rsync man git make automake cmake patch logrotate python-devel libpng-devel libjpeg-devel pwgen python-pip

RUN mkdir /opt/java &&\
    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-x64.tar.gz -P /opt/java

RUN mkdir /opt/kafka &&\
    wget http://apache.fayea.com/kafka/$KAFKA_VERSION/kafka_2.11-$KAFKA_VERSION.tgz -P /opt/kafka

RUN tar zxvf /opt/java/jdk-8u102-linux-x64.tar.gz -C /opt/java &&\
    JAVA_HOME=/opt/java/jdk1.8.0_102 &&\
    sed -i "/^PATH/i export JAVA_HOME=$JAVA_HOME" /root/.bash_profile &&\
    sed -i "s%^PATH.*$%&:$JAVA_HOME/bin%g" /root/.bash_profile &&\
    source /root/.bash_profile

RUN tar zxvf /opt/kafka/kafka*.tgz -C /opt/kafka &&\
    sed -i 's/num.partitions.*$/num.partitions=3/g' /opt/kafka/kafka_2.11-$KAFKA_VERSION/config/server.properties

RUN echo "source /root/.bash_profile" > /opt/kafka/start.sh &&\
    echo "cd /opt/kafka/kafka_2.11-"$KAFKA_VERSION >> /opt/kafka/start.sh &&\
    echo "sed -i 's%zookeeper.connect=.*$%zookeeper.connect=zookeeper:2181%g'  /opt/kafka/kafka_2.11-"$KAFKA_VERSION"/config/server.properties" >> /opt/kafka/start.sh &&\
    echo "bin/kafka-server-start.sh config/server.properties" >> /opt/kafka/start.sh &&\
    chmod a+x /opt/kafka/start.sh

EXPOSE 9092

ENTRYPOINT ["sh", "/opt/kafka/start.sh"]

build:

docker build -t  jiankunking/kafka:0.8.2.2 -f kafka.Dockerfile .

作者:jiankunking 出处:http://blog.csdn.net/jiankunking

使用Docker技术部署Kafka可以按照以下步骤进行: ### 创建docker网卡 若有需要,可创建docker网卡(如docker0 172.17.0.1),不过文档未给出具体创建命令,可参考Docker官方文档进行创建操作。 ### 准备环境 - 准备三台虚拟机,系统为centos7.3,安装docker1.12.6,IP地址分别为192.168.83.151,192.168.83.152,192.168.83.153。 - 所需镜像: - zookeeper镜像:wurstmeister/zookeeper:latest (20171012 latest标签版本是3.4.9) - kafka镜像:wurstmeister/kafka:0.10.1.1 (20171012 dockerfile中scala版本是2.11,kafka版本是0.10.1.1) - kafka - manager镜像:sheepkiller/kafka - manager:latest [^2]。 ### 拉取镜像 使用以下命令拉取zookeeper和kafka镜像: ```bash docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka ``` ### 启动zookeeper和kafka - 启动zookeeper: ```bash docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper ``` - 启动kafka: ```bash docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka:latest ``` ### 部署Kafka集群(若需要) 可分别在不同节点部署Kafka,以部署三个节点为例: 1. **部署节点1**:具体部署命令可参考上述启动单个Kafka的命令,根据实际情况调整环境变量。 2. **部署节点2**:同理,调整相关参数进行部署。 3. **部署节点3**:同样调整参数完成部署。 ### 设置主题 进入Kafka的bin目录(如/opt/kafka_2.13 - 2.8.1/bin ),创建一个主题: ```bash cd /opt/kafka_2.13-2.8.1/bin kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka ``` ### 查看效果 可通过相关命令查看Kafka和zookeeper的运行状态,如`docker ps`查看容器运行情况,也可通过Kafka的客户端工具进行测试验证。 [^1][^3]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值