目录
一、拉取 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参数说明:
| 参数 | 说明 |
|---|---|
| 8123 | HTTP接口 |
| 9000 | Native 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(用于监控和可视化)
连接信息:
| 参数 | 值 |
|---|---|
| Host | localhost |
| Port | 9000(Native)或 8123(HTTP) |
| User | default |
| Password | (按配置填写) |
十、常用 Docker 命令
# 查看日志 docker logs clickhouse # 实时查看日志 docker logs -f clickhouse # 重启 docker restart clickhouse # 停止 docker stop clickhouse # 启动 docker start clickhouse # 删除容器 docker rm -f clickhouse