docker部署clickhouse

前言

  • 由于现在居家办公测试环境连接公司的 clickhouse 需要 vpn 连接太麻烦且速度很慢,于是乎在测试机自己搭建 clickhouse,废话不多说直接开始教程

容器 clickhouse-server 配置

  • 拉取 clickhouse-server 镜像:docker pull yandex/clickhouse-server
  • 创建配置目录
  • 创建 clickhouse 数据目录:mkdir -p data/clickhouse/data/
  • 创建 clickhouse config 目录:mkdir -p data/clickhouse/config/
  • 创建 clickhouse log 目录:mkdir -p data/clickhouse/log/
  • 启动 clickhouse server 临时容器:
1
2
3
4
5
6
7
 docker run -d \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
-p 8123:8123 \
-p 9000:9000 \
-p 9009:9009 \
yandex/clickhouse-server:latest
  • 将容器内 config.xml 拷贝至主机 config 目录
1
docker cp clickhouse-server:/etc/clickhouse-server/config.xml data/clickhouse/config/config.xml
  • 将容器内 users.xml 拷贝至主机 config 目录
1
docker cp clickhouse-server:/etc/clickhouse-server/users.xml  data/clickhouse/config/users.xml
  • default 用户配置
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 生成sha256sum密码

# 随机生成密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
7I2bHFLv
a39ddb33bf9e57aaa208b0dd100c14f663125ccca7a356ab69fce7ed8ec97764

# 生成指定密码123456
echo "123456"; echo -n "123456" | sha256sum | tr -d '-'
123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

# 打开users.xml文件 default用户设置密码为123456
vim /data/clickhouse/config/users.xml

# 将文件中<password></password>改为以下内容
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>

# 将default用户改为只读
# 将<profile>default</profile>改为以下内容
<profile>readonly</profile>
  • 新增 root 用户
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 生成root用户密码123456
echo "123456"; echo -n "123456" | sha256sum | tr -d '-'
123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

# 打开users.xml文件
vim /data/clickhouse/config/users.xml
# 在</default>下一行添加以下内容
<root>
		<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
		<networks incl="networks" replace="replace">
			<ip>::/0</ip>
		</networks>
		<profile>default</profile>
		<quota>default</quota>
</root>
  • 删除临时容器:docker rm -f clickhouse-server

部署 clickhouse-server

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker run -d \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
-p 8123:8123 \
-p 9000:9000 \
-p 9009:9009 \
-v ./data/clickhouse/data:/var/lib/clickhouse:rw \
-v ./data/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml \
-v ./data/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml \
yandex/clickhouse-server:latest

DBeaver 连接 clickhouse

image-20230228133729750

结语

  • 以上就是 docker 部署 clickhouse-server 全过程,希望能帮到一些小伙伴。
  • clickhouse 可以使用 dbeaver 可视化连接
  • 如部署或者其他问题欢迎去我的博客(www.loganjin.cn)留言或者微信公众号(Python技术交流圈)留言交流哦。
Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up