播放记录

docker学习笔记–制作kafka镜像

博客术业专攻云计算dockerdocker学习笔记–制作kafka镜像 2019年08月29日 11:23:43

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 
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 
 ---> 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目录,需要持久化的,可以针对这个目录进行持久化!


转载:http://www.eryajf.net/2949.html

© 2018 www.qingketang.net 鄂ICP备18027844号-1

武汉快勤科技有限公司 13554402156 武汉市东湖新技术开发区关山二路特一号国际企业中心6幢4层7号

微信登录

扫码关注,全站教程免费播放

发表评论 X

登录成功
开通VIP

订单金额:

支付金额:

支付方式: