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_USERdefault \ -e CLICKHOUSE_PASSWORD123456 \ -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT1 \ clickhouse/clickhouse-server:latest参数说明参数说明8123HTTP接口9000Native TCP接口--name容器名称查看容器docker ps输出类似CONTAINER IDclickhouse0.0.0.0:8123-81230.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 Tom2 Lucy五、浏览器访问ClickHouse 自带 HTTP 服务。浏览器访问http://localhost:8123如果正常会返回OK也可以直接执行 SQLhttp://localhost:8123/?querySELECT%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 password123456/password /default修改后重启docker restart clickhouse八、使用 Docker Compose推荐创建docker-compose.ymlversion: 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 APIcurl http://localhost:8123/?querySELECTversion()例如返回25.x.x.x使用数据库工具常见支持 ClickHouse 的工具包括DBeaverDataGripVS Code SQLTools安装 ClickHouse 插件Grafana用于监控和可视化连接信息参数值HostlocalhostPort9000Native或 8123HTTPUserdefaultPassword按配置填写十、常用 Docker 命令# 查看日志 docker logs clickhouse # 实时查看日志 docker logs -f clickhouse # 重启 docker restart clickhouse # 停止 docker stop clickhouse # 启动 docker start clickhouse # 删除容器 docker rm -f clickhouse