运维
docker
dockerfile详解
网络
使用sshuttle打通本地与k8s集群环境
使用ktconnect打通网络本地与集群网络
Spring Cloud
nacos部署
中间件
rabbitmq
XXL-JOB部署
RocketMQ部署
K3S
k3s证书过期修改
Kruise Rollout(灰度)
驱动
nginx
nginxWebUI
nginx-ui
Jenkins 介绍与部署文档
ClickHouse Docker 部署文档
本文档使用 MrDoc 发布
-
+
首页
ClickHouse Docker 部署文档
# ClickHouse Docker 部署文档 本文档介绍如何使用 **Docker** 或 **Docker Compose** 快速部署 ClickHouse 数据库,并进行基础配置与验证。 [ClickHouse 官方文档](https://clickhouse.com/docs/zh) [ClickHouse 最新版本地址](https://github.com/ClickHouse/ClickHouse/releases) --- ## 拉取 ClickHouse 镜像 从官方镜像仓库拉取最新版: ``` docker pull clickhouse/clickhouse-server:latest docker pull clickhouse/clickhouse-server:25.8.11.66 ``` 镜像地址:https://hub.docker.com/r/clickhouse/clickhouse-server ## 复制配置到指定的配置目录 ``` # 对应的目录安装需要指定 mkdir -p /wzxy/clickhouse/conf docker run --rm clickhouse/clickhouse-server:25.8.11.66 \ bash -c "cd /etc/clickhouse-server && tar -cf - ." | tar -xf - -C /wzxy/clickhouse/conf ``` ## 运行ClickHouse 镜像 ``` docker run -d \ --name clickhouse \ --restart=always \ --cpus=8 \ --memory=16g \ --ulimit nofile=262144:262144 \ -p 8123:8123 \ -p 9000:9000 \ -p 9004:9004 \ -v /wzxy/clickhouse/data:/var/lib/clickhouse \ -v /wzxy/clickhouse/logs:/var/log/clickhouse-server \ -v /wzxy/clickhouse/conf:/etc/clickhouse-server \ -v /etc/localtime:/etc/localtime:ro \ clickhouse/clickhouse-server:25.8.11.66 docker run -d \ --name clickhouse \ --restart=always \ --cpus=8 \ --memory=16g \ --ulimit nofile=262144:262144 \ -p 8123:8123 \ -p 9000:9000 \ -p 9004:9004 \ -v /wzxy/clickhouse/data:/var/lib/clickhouse \ -v /wzxy/clickhouse/logs:/var/log/clickhouse-server \ -v /wzxy/clickhouse/conf:/etc/clickhouse-server \ -v /etc/localtime:/etc/localtime:ro \ clickhouse/clickhouse-server:25.8.11.66 ``` 参数说明: | 参数 | 说明 | | ----------------------------------------------------- | ---------------------------------------- | | `--name clickhouse` | 容器名称,方便管理和查看容器状态 | | `-p 8123:8123` | HTTP 接口端口,可通过浏览器访问或 REST API 连接 | | `-p 9000:9000` | TCP 客户端端口,用于 ClickHouse 客户端、JDBC/ODBC 连接 | | `-p 9009:9009` | 集群内部通信端口(复制/集群节点使用),非集群可忽略 | | `-v /wzxy/clickhouse/data:/var/lib/clickhouse` | 数据目录持久化,保证容器重启或删除不会丢失数据 | | `-v /wzxy/clickhouse/logs:/var/log/clickhouse-server` | 日志目录持久化,方便查看和备份日志 | | `-v /wzxy/clickhouse/conf:/etc/clickhouse-server` | 配置文件持久化,可自定义 `config.xml`、`users.xml` 等 | | `-v /etc/localtime:/etc/localtime:ro` | 同步宿主机时间到容器,保证日志时间正确 | | `--restart=always` | 容器异常退出或宿主机重启时自动启动 | | `--cpus=8` | 根据宿主机总核数分配 50%-70% 给 ClickHouse,避免占满宿主机 | | `--memory=16g` | 50%-70% 宿主机总内存,保证其他服务运行正常 | | `--ulimit nofile=262144:262144` | 提升文件描述符上限,支持高并发查询和大表访问 | ## 配置文件介绍 | 文件/目录 | 作用说明 | 使用建议/备注 | |------------------|----------------------------------------------------------------------|--------------| | `config.xml` | ClickHouse 主配置文件,包含服务器端口、日志目录、数据目录、内存限制、网络配置、集群设置等 | 修改此文件可以调整全局配置,例如 HTTP/TCP 端口、路径、默认内存等;生产环境建议备份原文件再修改 | | `users.xml` | 用户和权限配置文件,定义 ClickHouse 用户、密码、角色、访问权限、资源限制等 | 可以添加或修改用户及访问权限;如果使用 LDAP、Kerberos 等认证,也会在这里配置 | | `config.d/` | 额外的配置目录,允许将配置拆分成多个小文件,例如 `storage.xml`、`zookeeper.xml` 等 | 便于模块化配置,避免修改 `config.xml` 直接冲突;支持动态加载和覆盖配置 | | `users.d/` | 额外的用户配置目录,允许将用户配置拆分成多个文件 | 便于管理多个用户和角色,支持按环境或项目拆分用户配置;优先级高于 `users.xml` | ### config.xml介绍 ``` <yandex> <!-- ====================== 基本监听配置 ====================== --> <listen_host>::</listen_host> <!-- 监听所有 IPv6 地址 --> <listen_host>0.0.0.0</listen_host> <!-- 监听所有 IPv4 地址,允许外部访问 --> <listen_try>1</listen_try> <!-- 尝试绑定端口次数,1次失败会报错 --> <!-- HTTP 服务端口,用于浏览器或 REST API --> <http_port>8123</http_port> <!-- TCP 服务端口,用于 clickhouse-client、JDBC/ODBC --> <tcp_port>9000</tcp_port> <!-- 集群节点内部通信端口 --> <interserver_http_port>9009</interserver_http_port> <!-- ====================== 数据目录 ====================== --> <path>/var/lib/clickhouse/</path> <!-- 数据库数据存储路径,挂载宿主机 /wzxy/clickhouse/data --> <tmp_path>/var/lib/clickhouse/tmp/</tmp_path> <!-- 临时文件目录,确保磁盘空间充足 --> <!-- ====================== 日志配置 ====================== --> <logger> <!-- 日志级别: 建议生产环境使用 information 或 warning --> <level>information</level> <!-- 普通日志文件 --> <log>/var/log/clickhouse-server/clickhouse-server.log</log> <!-- 错误日志文件 --> <errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog> <!-- 日志轮转:单文件最大 500M --> <size>500M</size> <!-- 保留日志文件数量 --> <count>10</count> </logger> <!-- ====================== 内存与线程 ====================== --> <max_memory_usage>8000000000</max_memory_usage> <!-- 可选配置 单查询最大内存使用,容器内存的 40%-50%,可根据宿主机总内存和并发量调整 --> <mark_cache_size>2147483648</mark_cache_size> <!-- 元数据缓存大小,约 2GB --> <uncompressed_cache_size>4294967296</uncompressed_cache_size> <!-- 未压缩数据块缓存大小,约 4GB --> <max_threads>8</max_threads> <!-- 可选配置 最大线程数等于容器 CPU 核数 --> <!-- ====================== MergeTree 表优化 ====================== --> <merge_tree> <max_part_size>1073741824</max_part_size> <!-- 单个数据分片最大 1GB,可根据 SSD 调整 --> </merge_tree> <!-- ====================== 用户认证 ====================== --> <!-- 用户、权限配置主要在 users.xml 中设置 --> <!-- ====================== 集群配置 ====================== --> <!-- 如果是单机可忽略 zookeeper 配置 --> <!-- <zookeeper> <node> <host>zk1.example.com</host> <port>2181</port> </node> </zookeeper> --> <!-- ====================== 压缩配置 ====================== --> <compression> <case> <min_part_size>1048576</min_part_size> <!-- 启用压缩的最小数据块 1MB --> <method>LZ4</method> <!-- 使用 LZ4 压缩,兼顾性能和存储 --> </case> </compression> </yandex> ``` ### users.xml配置 users.d目录下,例如建立admin用户,则在该目录下建立admin.xml文件 ``` <clickhouse> <users> <admin> <password>cxClickHouse@12!</password> <networks> <ip>::/0</ip> <ip>0.0.0.0</ip> </networks> <profile>default</profile> <quota>default</quota> <access_management>1</access_management> </admin> </users> </clickhouse> ``` ## 验证 ``` # 进入容器内部 docker exec -it clickhouse bash # 清空 access 缓存 rm -rf /var/lib/clickhouse/access/* # 容器内部登录 default clickhouse-client -u default clickhouse-client -u admin --password AdminPass@2025 # 验证用户列表: SELECT name FROM system.users; ``` ## 客户端连接方式 | 工具 | 连接地址 | 端口 | 协议 | | ------------------------- | ---------------------------------------------------- | ---- | ---- | | 浏览器 | [http://localhost:8123](http://localhost:8123) | 8123 | HTTP | | clickhouse-client | localhost | 9000 | TCP | | Python(clickhouse-driver) | `clickhouse://admin:admin123@localhost:9000/default` | TCP | | | Grafana | [http://localhost:8123](http://localhost:8123) | 8123 | HTTP |
admin
2025年11月10日 15:57
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Rancher
Jenkins
ADMIN-UI
VBEN-ADMIN-UI
RUST-FS
MinIO
mindoc
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码