Docker方式部署ClickHouse

Docker方式部署ClickHouse

ClickHouse docker 版本镜像:https://docker.aityp.com/r/docker.io/clickhouse/clickhouse-server

ClickHouse 21.8.13.6 docker 版本镜像:https://docker.aityp.com/image/docker.io/clickhouse/clickhouse-server:21.8.13.6

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/clickhouse/clickhouse-server:21.8.13.6

docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/clickhouse/clickhouse-server:21.8.13.6 clickhouse/clickhouse-server:21.8.13.6

先启动临时容器、查看 config、data、log 路径

docker run --rm -d --name=temp-clickhouse-server clickhouse/clickhouse-server:21.8.13.6

查看容器里的相关文件

docker exec temp-clickhouse-server cat /etc/clickhouse-server/config.xml

docker exec temp-clickhouse-server cat /etc/clickhouse-server/users.xml

docker exec temp-clickhouse-server ls -l /var/lib/clickhouse/

docker exec temp-clickhouse-server ls -l /var/log/clickhouse-server
docker exec temp-clickhouse-server cat /etc/clickhouse-client/config.xml #这个按需执行

注意:/etc/clickhouse-client/config.xml 这个非必须,可以挂载出来、也可以不挂,根据自己的实际情况按需配置。但如果需作为client执行ClickHouse CLI 命令行,建议配置也挂载出来(涉及SSL访问的话,需要修改配置文件的。如果非SSL访问则无需修改配置、可以不用挂载)。

或者先进入容器、再查看

docker exec -it temp-clickhouse-server /bin/bash

cat /etc/clickhouse-server/config.xml

cat /etc/clickhouse-server/users.xml

ls -l /var/lib/clickhouse/

ls -l /var/log/clickhouse-server
cat /etc/clickhouse-client/config.xml #这个按需执行

宿主机上创建目录(for 挂载)

mkdir -p /data/clickhouse/conf

mkdir -p /data/clickhouse/data

mkdir -p /data/clickhouse/log
mkdir -p /data/clickhouse/client-conf #这个按需执行

chmod -R 777 /data/clickhouse

注意:
mkdir -p /data/clickhouse/client-conf 这个目录按需创建、没有SSL需求、不挂载的话也可以不创建。

拷贝容器里的配置文件到本机上,按需修改配置、开放端口、设置密码等。

docker cp temp-clickhouse-server:/etc/clickhouse-server/config.xml /data/clickhouse/conf/config.xml

docker cp temp-clickhouse-server:/etc/clickhouse-server/users.xml /data/clickhouse/conf/users.xml
docker cp temp-clickhouse-server:/etc/clickhouse-client/config.xml /data/clickhouse/client-conf/config.xml #这个按需执行

vim /data/clickhouse/conf/config.xml

<display_name>clickhouse</display_name>

<listen_host>::</listen_host>

其他端口等配置参数、我保持默认,实际环境如果有冲突、自己按需修改。

如果不禁用IPv6、允许服务同时监控IPv6和IPv4地址的话,则监听地址配置成:

<listen_host>::</listen_host>

即可,自己根据实际情况配置。

如果要禁用IPv6、只允许IPv4监听,则配置成:

<listen_host>0.0.0.0</listen_host>

配置文件中如果配置密文密码、先执行命令生成:

执行命令,生成SHA256密码

#生成两个随机密码的明文或密文:

PASSWORD=(base64 \< /dev/urandom \| head -c8); echo "PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

PASSWORD=(base64 \< /dev/urandom \| head -c8); echo "PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

#如果要:生产指定密码的明文和密文(安全性低)

PASSWORD=(echo "123456"); echo "PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

PASSWORD=(echo "1q2w3e"); echo "PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

执行命令后会返回密码明文和密文:

PASSWORD=(echo "123456"); echo "PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

123456

8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

PASSWORD=(echo "1q2w3e"); echo "PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

1q2w3e

c0c4a69b17a7955ac230bfc8db4a123eaa956ccf3c0022e68b8d4e2f5b699d1f

修改用户配置文件

vim /data/clickhouse/conf/users.xml

如果是配置密文密码,配置:

<password_sha256_hex>c0c4a69b17a7955ac230bfc8db4a123eaa956ccf3c0022e68b8d4e2f5b699d1f</password_sha256_hex>

如果是配置明文密码,配置:

<password>1q2w3e</password>

<default>

<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>

<networks>

<ip>::/0</ip>

</networks>

<profile>default</profile>

<quota>default</quota>

<quota>default</quota>

</default>

<root>

<password_sha256_hex>c0c4a69b17a7955ac230bfc8db4a123eaa956ccf3c0022e68b8d4e2f5b699d1f</password_sha256_hex>

<networks incl="networks" replace="replace">

<ip>::/0</ip>

</networks>

<profile>default</profile>

<quota>default</quota>

</root>

停止退出临时容器(临时容器退出、会自动删除)

docker stop temp-clickhouse-server

配置文件修改好了以后,启动容器(指定对应的挂载目录和文件)

docker run -d -p 8123:8123 -p 8443:8443 -p 9009:9009 -p 9000:9000 \

--ulimit nofile=262144:262144 \

--volume=/data/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \

--volume=/data/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \

--volume=/data/clickhouse/data:/var/lib/clickhouse \

--volume=/data/clickhouse/log:/var/log/clickhouse-server \
--volume=/data/clickhouse/client-conf/config.xml:/etc/clickhouse-client/config.xml \

--name clickhouse-server \

clickhouse/clickhouse-server:21.8.13.6

注意:如果前面clickhouse-client配置文件如果没有挂载需求(ClickHouse CLI SSL访问需要修改配置文件),也可以不用挂载该配置文件。

相关推荐
win x8 分钟前
JavaSE(基础)高频面试点及 知识点
java·面试·职场和发展
Terio_my9 分钟前
简要 Java 面试题学习
java·开发语言·学习
好好研究36 分钟前
Spring Boot - Thymeleaf模板引擎
java·spring boot·后端·thymeleaf
爬山算法38 分钟前
Hibernate(76)如何在混合持久化环境中使用Hibernate?
java·后端·hibernate
编程彩机40 分钟前
互联网大厂Java面试:从分布式缓存到消息队列的技术场景解析
java·redis·面试·kafka·消息队列·微服务架构·分布式缓存
她说..44 分钟前
策略模式+工厂模式实现单接口适配多审核节点
java·spring boot·后端·spring·简单工厂模式·策略模式
坚持就完事了1 小时前
Java的OOP
java·开发语言
Free Tester1 小时前
基于已有容器生成Dockerfile
docker
像少年啦飞驰点、1 小时前
零基础入门 Spring Boot:从“Hello World”到可部署微服务的完整学习路径
java·spring boot·微服务·编程入门·后端开发
undsky_1 小时前
【RuoYi-SpringBoot3-Pro】:将 AI 编程融入传统 java 开发
java·人工智能·spring boot·ai·ai编程