制作自己的Clickhouse镜像

前言

通过本篇文章,你可以学到

  • 如何制作自己的Docker镜像并上传到Dockerhub

如果这个镜像对你有用,你可以通过下面的命令从Dockerhub上直接下载,不需要通读后面的内容

docker pull jamine/clickhouse:21.12.3.32
复制代码

镜像内容包括

  • clickhouse:21.12.3.32
  • Java8
  • vim编辑器

如果你想学习制作镜像,那么可以跳过背景这一小节,接着阅读后面的内容

背景

想玩一玩Clickhouse的自定义函数功能,用Java写一个程序,比如生成分布式id,当Kafka数据写入到CK时,为每条数据插入一个唯一ID。

但是Dockerhub上的Clickhouse镜像没有安装vim编辑器,也没有安装Java环境。

于是想着做一个包含Java环境的Clickhouse镜像

这里扩展下,写入ck的数据加唯一id的方式:

  • 编写Java代码实现分布式id,使用Kafka的stream处理能力,流处理时就把唯一id加上
  • 或者用flink这样的流处理框架,通过编程的方式在流上处理

Dockerfile

FROM clickhouse/clickhouse-server:21.12.3.32

# 配置阿里云镜像源
ADD aliyun.list /etc/apt/sources.list.d/

# 安装vim
RUN apt-get update \
&& apt-get install -y vim

# FROM clickhouse:v1

# 安装jdk8
RUN wget -P /opt https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u312b07.tar.gz

# ADD OpenJDK8U-jdk_x64_linux_hotspot_8u312b07.tar.gz /opt

ENV LANG=C.UTF-8
ENV JAVA_HOME /opt/jdk8u312-b07
ENV PATH $PATH:$JAVA_HOME/bin
复制代码

aliyun.list

#添加阿里源 
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#添加清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse multiverse
复制代码

构建镜像

制作好镜像后,直接运行docker build构建镜像

docker build -t jamine/clickhouse:21.12.3.32 .
复制代码
  • -t:打tag

运行容器

镜像构建好后,运行容器

docker run -d --name clickhouse-server \
--ulimit nofile=262144:262144 \
--network mynet \
--ip 72.118.10.15 \
-p 9000:9000 \
-p 8123:8123 \
-p 9009:9009 \
-v clickhouse_config:/etc/clickhouse-server \
-v ~/data/clickhouse/data:/var/lib/clickhouse \
-v ~/data/clickhouse/log:/var/log/clickhouse-server \
-v ~/data/clickhouse/etc/apt:/etc/apt \
--privileged=true --user=root \
jamine/clickhouse:21.12.3.32
复制代码

上传到Dockerhub

docker push jamine/clickhouse:21.12.3.32
复制代码

镜像上传后,下次可以直接拉镜像到本地

docker pull jamine/clickhouse:21.12.3.32
复制代码

猜你喜欢

转载自juejin.im/post/7050416669868425252