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

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

相关推荐
Nontee13 小时前
Docker基础
docker·容器·eureka
烟雨江南aabb14 小时前
Docker第一弹 Docker是什么?
运维·docker·容器
ai产品老杨14 小时前
解耦异构算力与多协议接入:基于 Docker 与 GB28181 的企业级 AI 视频管理平台架构演进与源码交付实践
人工智能·docker·音视频
2301_8035389514 小时前
Pod启动失败?K8s中Pod创建常见问题与排查指南
docker·容器·kubernetes
YDS82914 小时前
浅谈近期关于Docker部署产生的一些问题
运维·docker·容器
日取其半万世不竭15 小时前
给 Docker 容器设置 CPU 和内存限制,避免单个服务拖垮整机
java·docker·容器
AI服务老曹16 小时前
解耦异构算力与多路协议:基于 Docker 部署与源码交付的企业级 GB28181/RTSP 边缘计算 AI 视频管理平台架构深度解析
人工智能·docker·边缘计算
日取其半万世不竭16 小时前
Docker Compose 服务备份方案:配置、数据和数据库怎么打包
数据库·docker·容器
生活爱好者!16 小时前
用NAS进行漫画创作!一键部署Open WebUI
java·服务器·开发语言·安全·docker
IT策士16 小时前
Docker 从 0 到 1 再到 Kubernetes 实战:第4篇 编写你的第一个 Dockerfile
docker·容器·kubernetes