Docker 简单部署 ClickHouse 超详细图文步骤

1、引言

1.1、ClickHouse 简介

ClickHouse 是一款 ** 开源、列式存储、面向 OLAP(在线分析处理)** 的高性能数据库管理系统,由俄罗斯 Yandex 公司于 2016 年正式开源,现由 ClickHouse Inc. 主导开发与维护,采用 Apache 2.0 许可证。它最初为 Yandex.Metrica 网络分析服务设计,核心目标是解决海量数据(PB 级)下实时多维分析的性能瓶颈,目前已广泛应用于数据分析、数据仓库、日志监控、可观测性与 AI 相关场景。

从核心技术来看,ClickHouse 基于MPP(大规模并行处理)架构,数据按列物理存储,配合高压缩算法(LZ4/ZSTD)大幅减少磁盘 I/O 与存储空间;执行查询时采用矢量化执行 + SIMD 指令优化,以数据块(Block)为单位批量计算,充分压榨 CPU 算力,实现亿级数据聚合查询亚秒级响应。它高度兼容标准 SQL,支持 GROUP BY、JOIN、窗口函数等常用语法,学习成本低,同时提供异步多主复制、数据一致性保障与基于角色的权限控制,适合大规模集群部署。

凭借极致的查询性能、优秀的扩展性与低成本存储优势,ClickHouse 已成为全球最流行的实时分析数据库之一,在 DB-Engines 列式数据库分类中长期位居前列,被字节、阿里、腾讯等众多企业采用,支撑各类高并发、低延迟的海量数据分析需求。

1.2、Docker 环境

CentOS7 安装 Docker

1.3、Docker 镜像国内加速

渡渡鸟镜像同步站

2、ClickHouse 安装

2.1、创建 bridge 网络并指定 IP 区间

bash 复制代码
# 创建自定义网络
docker network create --driver bridge --subnet 172.0.0.0/16 woniu_network
 
# 查看已存在网络
docker network ls

2.2、创建数据和配置存放目录

bash 复制代码
# 创建 ClickHouse 数据目录
mkdir -p /home/docker/clickhouse && chmod 777 /home/docker/clickhouse

2.3、下载国内镜像

从渡渡鸟镜像同步站下载国内 ClickHouse 国内镜像

bash 复制代码
# 镜像下载地址
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/clickhouse:25.2.2

# 镜像重新命名
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/clickhouse:25.2.2  docker.io/library/clickhouse:25.2.2

# 镜像重新命名后可以选择删除,根据自己喜好执行
docker rmi swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/clickhouse:25.2.2

2.4、安装并运行 ClickHouse

bash 复制代码
# 启动 ClickHouse
docker run -d \
  --name clickhouse \
  --ulimit nofile=262144:262144 \
  -p 8123:8123 \
  -p 9000:9000 \
  -e CLICKHOUSE_USER=csdn \
  -e CLICKHOUSE_PASSWORD=123456 \
  --restart always \
  docker.io/library/clickhouse:25.2.2

# 在容器 ClickHouse 中开启一个交互模式的终端
docker exec -it clickhouse /bin/bash

2.5、复制 ClickHouse 相关文件

bash 复制代码
# 复制 ClickHouse 数据文件到指定目录
docker cp -a clickhouse:/var/lib/clickhouse/ /home/docker/

# 删除 ClickHouse 容器
docker rm -f clickhouse

2.6、自定义启动 ClickHouse

bash 复制代码
docker run -d \
  --name clickhouse \
  --network woniu_network \
	--ip 172.0.0.90 \
  --ulimit nofile=262144:262144 \
  -p 8123:8123 \
  -p 9000:9000 \
  -e CLICKHOUSE_USER=csdn \
  -e CLICKHOUSE_PASSWORD=123456 \
  -v /home/docker/clickhouse:/var/lib/clickhouse \
  --restart always \
  docker.io/library/clickhouse:25.2.2

3、Tabix 安装

3.1、下载国内镜像

从渡渡鸟镜像同步站下载国内 ClickHouse 国内镜像

bash 复制代码
# 镜像下载地址
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/spoonest/clickhouse-tabix-web-client:latest

# 镜像重新命名
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/spoonest/clickhouse-tabix-web-client:latest  docker.io/spoonest/clickhouse-tabix-web-client:latest

# 镜像重新命名后可以选择删除,根据自己喜好执行
docker rmi swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/spoonest/clickhouse-tabix-web-client:latest

3.2、安装并运行 Tabix

bash 复制代码
# 启动 Tabix
docker run -d \
  --name tabix \
  --network woniu_network \
  --ip 172.0.0.80 \
  -p 8080:80 \
  --restart always \
  docker.io/spoonest/clickhouse-tabix-web-client:latest

# 在容器 tabix 中开启一个交互模式的终端
docker exec -it tabix /bin/bash

# 删除 ClickHouse 容器
docker rm -f tabix

本文教程到此结束,祝愿小伙伴们在编程之旅中能够愉快地探索、学习、成长!

相关推荐
Slow菜鸟2 小时前
Docker 学习篇(五)| Docker 常用命令
学习·docker·容器
梵得儿SHI3 小时前
(第三篇)Spring AI 架构设计与优化:容器化与云原生部署,基于 K8s 的 AI 应用全生命周期管理
java·ci/cd·docker·云原生·kubernetes·容器化·spring ai
m0_737539373 小时前
基于LNMP的综合实验
容器·kubernetes
狼与自由20 小时前
clickhouse log引擎
clickhouse
.柒宇.1 天前
RedHat10-Ansible部署Docker操作
docker·eureka·ansible
木雷坞1 天前
内网模型服务启动链路分层实践
docker·容器·gpu
江湖有缘1 天前
保姆级教程:Docker 部署 Portracker 端口监控工具
jvm·docker·容器
jinanwuhuaguo1 天前
(第三十六篇)OpenClaw 去中心化的秩序——从“中心调度”到“网格自治”的治理革命
java·大数据·开发语言·网络·docker·去中心化·github
摇滚侠2 天前
Docker 如何查询挂载的目录
运维·docker·容器