news 2026/7/15 5:58:07

Docker部署ClickHouse时序数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker部署ClickHouse时序数据库

目录

一、拉取 ClickHouse 镜像

二、快速启动(体验版)

三、进入容器

四、测试SQL

五、浏览器访问

六、数据持久化(推荐)

七、设置用户名密码(推荐)

八、使用 Docker Compose(推荐)

九、连接方式

使用客户端

使用数据库工具

十、常用 Docker 命令


一、拉取 ClickHouse 镜像

官方镜像:

docker pull clickhouse/clickhouse-server:latest

查看镜像:

docker images

应该看到类似:

clickhouse/clickhouse-server latest

二、快速启动(体验版)

docker run -d \ --name clickhouse \ -p 8123:8123 \ -p 9000:9000 \ clickhouse/clickhouse-server:latest

指定密码启动

docker run -d \ --name clickhouse \ -p 8123:8123 \ -p 9000:9000 \ -e CLICKHOUSE_USER=default \ -e CLICKHOUSE_PASSWORD=123456 \ -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \ clickhouse/clickhouse-server:latest

参数说明:

参数说明
8123HTTP接口
9000Native TCP接口
--name容器名称

查看容器:

docker ps

输出类似:

CONTAINER ID
clickhouse
0.0.0.0:8123->8123
0.0.0.0:9000->9000

三、进入容器

docker exec -it clickhouse bash

进入后执行:

clickhouse-client

看到:

:)

说明安装成功

四、测试SQL

创建数据库:

CREATE DATABASE test;

查看数据库:

SHOW DATABASES;

创建表:

CREATE TABLE test.user ( id UInt64, name String, create_time DateTime ) ENGINE = MergeTree ORDER BY id;
CREATE TABLE IF NOT EXISTS monitor_his_data ( `_ts` DateTime64(3), `business_id` String, `data_dimension_type` UInt16, `data_type_point` LowCardinality(String), `value` String ) ENGINE = MergeTree PARTITION BY toYYYYMM(`_ts`) ORDER BY (`business_id`, `data_dimension_type`, `data_type_point`, `_ts`) SETTINGS index_granularity = 8192; CREATE TABLE IF NOT EXISTS monitor_his_accumulate_data ( `_ts` DateTime64(3), `business_id` String, `data_dimension_type` UInt16, `data_type_point` LowCardinality(String), `time_dimension` UInt8, `value` Decimal(38, 10) ) ENGINE = MergeTree PARTITION BY toYYYYMM(`_ts`) ORDER BY (`business_id`, `data_dimension_type`, `data_type_point`, `time_dimension`, `_ts`) SETTINGS index_granularity = 8192;

插入数据:

INSERT INTO test.user VALUES (1,'Tom',now()), (2,'Lucy',now());

查询:

SELECT * FROM test.user;

结果:

1 Tom
2 Lucy

五、浏览器访问

ClickHouse 自带 HTTP 服务。

浏览器访问:

http://localhost:8123

如果正常,会返回:

OK

也可以直接执行 SQL:

http://localhost:8123/?query=SELECT%201

返回1

六、数据持久化(推荐)

如果直接运行容器,删除容器后数据会丢失。

推荐挂载数据目录:

mkdir -p /opt/clickhouse/data mkdir -p /opt/clickhouse/logs

启动:

docker run -d \ --name clickhouse \ -p 8123:8123 \ -p 9000:9000 \ -v /opt/clickhouse/data:/var/lib/clickhouse \ -v /opt/clickhouse/logs:/var/log/clickhouse-server \ clickhouse/clickhouse-server:latest

这样:

数据库数据 ↓ /opt/clickhouse/data

日志:

/opt/clickhouse/logs

七、设置用户名密码(推荐)

默认情况下用户为:

default

通常需要通过配置文件设置密码。

可以挂载配置目录:

mkdir -p /opt/clickhouse/config

启动:

-v /opt/clickhouse/config:/etc/clickhouse-server

然后修改:

users.xml

配置密码,例如:

<default> <password>123456</password> </default>

修改后重启:

docker restart clickhouse

八、使用 Docker Compose(推荐)

创建docker-compose.yml

version: "3.9" services: clickhouse: image: clickhouse/clickhouse-server:latest container_name: clickhouse restart: always ports: - "8123:8123" - "9000:9000" volumes: - ./data:/var/lib/clickhouse - ./logs:/var/log/clickhouse-server ulimits: nofile: soft: 262144 hard: 262144

启动:

docker compose up -d

查看:

docker compose ps

停止:

docker compose down

九、连接方式

使用客户端

进入容器:

docker exec -it clickhouse clickhouse-client

如果设置了密码:

clickhouse-client \ --user default \ --password

使用 HTTP API

curl "http://localhost:8123/?query=SELECT+version()"

例如返回:

25.x.x.x

使用数据库工具

常见支持 ClickHouse 的工具包括:

  • DBeaver
  • DataGrip
  • VS Code SQLTools(安装 ClickHouse 插件)
  • Grafana(用于监控和可视化)

连接信息:

参数
Hostlocalhost
Port9000(Native)或 8123(HTTP)
Userdefault
Password(按配置填写)

十、常用 Docker 命令

# 查看日志 docker logs clickhouse # 实时查看日志 docker logs -f clickhouse # 重启 docker restart clickhouse # 停止 docker stop clickhouse # 启动 docker start clickhouse # 删除容器 docker rm -f clickhouse
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 5:56:29

ping命令无效时,我们可以使用工具tcping取而代之

我们通常判断是否可以访问一个网站最简单的方式是什么&#xff0c;大家都会想到ping它&#xff01;&#xff01;&#xff01; 没错&#xff01;那么有时候一个网站我们可以访问&#xff0c;但ping不通&#xff0c;那么我们该如何检测链路质量呢&#xff1f; ping ping唯一核…

作者头像 李华
网站建设 2026/7/15 5:56:24

C++实现箱线图异常值检测:从算法原理到工程实践

1. 项目概述&#xff1a;为什么在C项目中需要自己动手实现箱线图异常值剔除&#xff1f;在数据处理和分析的日常工作中&#xff0c;异常值就像混入米缸里的几粒沙子&#xff0c;不处理掉&#xff0c;轻则影响统计结果的准确性&#xff0c;重则可能让后续的机器学习模型“跑偏”…

作者头像 李华
网站建设 2026/7/15 5:55:32

ChatGPT Codex与工作模式:AI辅助开发实战指南

如果你是一名开发者&#xff0c;最近可能已经注意到 ChatGPT 生态中出现了两个新面孔&#xff1a;ChatGPT 工作和 Codex。表面上看&#xff0c;它们似乎都是 ChatGPT 的功能扩展&#xff0c;但真正关键的区别在于——一个专注于处理文档、研究和报告生成&#xff0c;另一个则深…

作者头像 李华
网站建设 2026/7/15 5:54:18

ChatGPT桌面版:AI工具从网页到工作流的无缝集成变革

那天下午&#xff0c;我正忙着写代码&#xff0c;突然需要查一个 API 参数的具体用法。按照老习惯&#xff0c;我下意识地打开了浏览器&#xff0c;在书签里找到 ChatGPT 网页版&#xff0c;输入问题&#xff0c;等待页面加载&#xff0c;然后得到答案。整个过程大概花了一分钟…

作者头像 李华
网站建设 2026/7/15 5:54:00

VC++财务管理系统开发实战:从环境搭建到核心模块实现

1. 项目概述&#xff1a;为什么选择VC开发财务管理系统&#xff1f;在众多开发工具和语言中&#xff0c;选择VC&#xff08;Visual C&#xff09;来构建一个财务管理系统&#xff0c;听起来可能有些“复古”&#xff0c;但这恰恰是很多对性能、稳定性和底层控制有极致要求的开发…

作者头像 李华
网站建设 2026/7/15 5:52:37

突然袭击!Anthropic 发布 Claude 4.8,科技圈彻底炸锅了!

大模型行业再次迎来“突然袭击”。Anthropic 毫无预警地发布了全新旗舰模型 Claude 4.8&#xff0c;直接将逻辑推理与长代码生成能力拉到了新高度。消息一出&#xff0c;CSDN 社区与各大技术群瞬间炸开了锅。为了摸清它的真实底细&#xff0c;我第一时间在 AI 模型聚合平台 yin…

作者头像 李华