• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 宝剑锋从磨砺出,梅花香自苦寒来!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

<十>docker学习笔记–制作kafka镜像

docker eryajf 3个月前 (07-04) 234°C 已收录 0个评论
本文预计阅读时间 8 分钟

1,准备工作

1,下载kafka。

wget https://mirrors.cnnic.cn/apache/kafka/0.11.0.2/kafka_2.11-0.11.0.2.tgz

然后上传到服务器。

2,基础镜像。

需要准备一个jdk镜像。

docker pull eryajf/jdk:1.8

2,创建镜像

1,原料准备。

创建一个目录,有如下内容。

[root@jenkins kafka]$ls
Dockerfile  kafka.tar  run.sh

其中kafka.tar是在解压之后,重命名为kafka,然后再次打包而成,这样方便后续操作。

2,查看内容。

查看两个文件的内容。

[root@jenkins kafka]$cat run.sh
#!/bin/bash
source /etc/profile
sed -i '34s/^#//g' /opt/kafka/config/server.properties
sed -i '63s/tmp/opt\/kafka/g' /opt/kafka/config/server.properties
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
sleep 3
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

服务通过run.sh进行初始化,里边简单配置了一下kafka,然后启动。

[root@jenkins kafka]$cat Dockerfile
FROM eryajf/jdk:1.8
MAINTAINER eryajf <liqilong@edspay.com>
ENV LANG en_US.UTF-8
ADD kafka.tar /opt
ADD   run.sh  /
EXPOSE 9092
ENTRYPOINT [ "sh", "-c", "/run.sh" ]

3,构建镜像。

[root@jenkins kafka]$docker build -t test .
Sending build context to Docker daemon 236.7 MB
Step 1/7 : FROM 192.168.112.69/public/jdk:1.8
 ---> 88d717766e50
Step 2/7 : MAINTAINER eryajf <liqilong@edspay.com>
 ---> Using cache
 ---> ce9a81c38f6c
Step 3/7 : ENV LANG en_US.UTF-8
 ---> Using cache
 ---> d8ed2ae6a64f
Step 4/7 : ADD kafka.tar /opt
 ---> 1e6337f7c14d
Removing intermediate container b1127716d99e
Step 5/7 : ADD run.sh /
 ---> 1ca96a5d1728
Removing intermediate container 4c5750914f16
Step 6/7 : EXPOSE 9092
 ---> Running in a62aca3a277d
 ---> ce25e74f2acb
Removing intermediate container a62aca3a277d
Step 7/7 : ENTRYPOINT sh -c /run.sh
 ---> Running in 77536f76e370
 ---> 9d368303d96e
Removing intermediate container 77536f76e370
Successfully built 9d368303d96e

3,启动验证

启动一下刚刚构建的镜像。

[root@jenkins kafka]$docker run -itd -p 9092:9092 --name aa test
c49f55f91edf1c6ecdf2c37d842f250a562a55df164a51571cfc71747f330e13

进入镜像创建消息验证。

[root@jenkins kafka]$docker exec -it aa sh
sh-4.2#cd opt/kafka/bin

sh-4.2# ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".

sh-4.2# ./kafka-topics.sh --list --zookeeper localhost:2181
test

sh-4.2# ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
>hello world
>hello eryajf

然后退出一下这个终端,查看一下刚刚的消息

sh-4.2# ./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
hello world
hello eryajf

可以看出,消息收发都是正常的。

4,上传公用

1,阿里云。

[root@jenkins kafka]$ docker tag test registry.cn-hangzhou.aliyuncs.com/eryajf/kafka:2.11
[root@jenkins kafka]$ docker push registry.cn-hangzhou.aliyuncs.com/eryajf/kafka:2.11

2,官方。

[root@jenkins kafka]$ docker tag test eryajf/kafka:2.11
[root@jenkins kafka]$ docker push eryajf/kafka:2.11

有需要使用的,可以直接通过上边两个地址进行pull使用。

docker pull registry.cn-hangzhou.aliyuncs.com/eryajf/kafka:2.11
docker pull eryajf/kafka:2.11

使用注意,其中将kafka的消息目录定义在了/opt/kafka/kafka-logs目录,需要持久化的,可以针对这个目录进行持久化!


weinxin
扫码订阅本站,第一时间获得更新
微信扫描二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明<十>docker学习笔记–制作kafka镜像
喜欢 (2)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
关于作者:
学无止境,我愿意无止境学。书山有路,我愿意举身投火,淬炼成金!

您必须 登录 才能发表评论!