注意:这是clickhouse镜像的arm64v8架构构建的“每架构”仓库——更多信息,请参见镜像文档中的“除amd64之外的架构?”和***镜像FAQ中的“Git中的镜像源已更改,现在该怎么办?”。
维护者:
ClickHouse Inc.
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
Dockerfile链接latest, jammy, 25.9, 25.9-jammy, 25.9.4, 25.9.4-jammy, 25.9.4.58, 25.9.4.58-jammy
lts, lts-jammy, 25.8, 25.8-jammy, 25.8.10, 25.8.10-jammy, 25.8.10.7, 25.8.10.7-jammy
25.7, 25.7-jammy, 25.7.8, 25.7.8-jammy, 25.7.8.71, 25.7.8.71-jammy
25.3, 25.3-jammy, 25.3.7, 25.3.7-jammy, 25.3.7.194, 25.3.7.194-jammy
问题提交地址:
[***]
支持的架构:(更多信息)
amd64, arm64v8
已发布镜像制品详情:
repo-info仓库的repos/clickhouse/目录(历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images仓库的library/clickhouse标签
official-images仓库的library/clickhouse文件(历史记录)
本描述的来源:
docs仓库的clickhouse/目录(历史记录)
!logo
ClickHouse是一个开源的列式数据库管理系统(DBMS),用于在线分析处理(OLAP),允许用户使用SQL查询实时生成分析报告。
ClickHouse的运行速度比传统数据库管理系统快100-1000倍,每台服务器每秒可处理数亿到超过10亿行数据以及数十GB的数据。凭借全球广泛的用户基础,该技术因其可靠性、易用性和容错性而广受好评。
更多信息和文档请参见[***]
latest标签指向最新稳定分支的最新版本。22.2)指向对应分支的最新版本。22.2.3和22.2.3.5)指向对应版本。ubuntu:22.04作为基础镜像。它需要docker版本>=20.10.10(包含补丁)。作为替代方案,可使用docker run --security-opt seccomp=unconfined,但这存在安全隐患。bashdocker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 arm64v8/clickhouse
默认情况下,ClickHouse仅通过Docker网络可访问。详见下文“网络”部分。
默认情况下,上述启动的服务器实例将以default用户运行,无密码。
bashdocker run -it --rm --network=container:some-clickhouse-server --entrypoint clickhouse-client arm64v8/clickhouse # 或 docker exec -it some-clickhouse-server clickhouse-client
更多关于ClickHouse客户端的信息。
bashecho "SELECT 'Hello, ClickHouse!'" | docker run -i --rm --network=container:some-clickhouse-server buildpack-deps:curl curl 'http://localhost:8123/?query=' -s --data-binary @-
更多关于ClickHouse HTTP接口的信息。
bashdocker stop some-clickhouse-server docker rm some-clickhouse-server
⚠️ 注意:预定义用户
default在未设置密码的情况下没有网络访问权限,详见下文“如何在启动时创建默认数据库和用户”和“管理default用户”
可通过映射容器内的特定端口到主机端口来暴露Docker中运行的ClickHouse:
bashdocker run -d -p ***:8123 -p***:9000 -e CLICKHOUSE_PASSWORD=changeme --name some-clickhouse-server --ulimit nofile=262144:262144 arm64v8/clickhouse echo 'SELECT version()' | curl 'http://localhost:***/?password=changeme' --data-binary @-
22.6.3.35
或通过使用--network=host允许容器直接使用主机端口(也可获得更好的网络性能):
bashdocker run -d --network=host --name some-clickhouse-server --ulimit nofile=262144:262144 arm64v8/clickhouse echo 'SELECT version()' | curl 'http://localhost:8123/' --data-binary @-
22.6.3.35
⚠️ 注意:上述示例中的
default用户仅允许本地主机请求访问
通常,你可能需要挂载以下文件夹到容器内以实现持久化:
/var/lib/clickhouse/ - ClickHouse存储数据的主文件夹/var/log/clickhouse-server/ - 日志文件夹bashdocker run -d \ -v "$PWD/ch_data:/var/lib/clickhouse/" \ -v "$PWD/ch_logs:/var/log/clickhouse-server/" \ --name some-clickhouse-server --ulimit nofile=262144:262144 arm64v8/clickhouse
你可能还需要挂载:
/etc/clickhouse-server/config.d/*.xml - 服务器配置调整文件/etc/clickhouse-server/users.d/*.xml - 用户设置调整文件/docker-entrypoint-initdb.d/ - 数据库初始化脚本文件夹(见下文)。ClickHouse的某些高级功能需要启用多个Linux capabilities。
它们是可选的,可通过以下docker命令行参数启用:
bashdocker run -d \ --cap-add=SYS_NICE --cap-add=NET_ADMIN --cap-add=IPC_LOCK \ --name some-clickhouse-server --ulimit nofile=262144:262144 arm64v8/clickhouse
更多信息见知识库。
容器暴露端口8123用于HTTP接口,端口9000用于原生客户端。
ClickHouse配置由文件“config.xml”表示(文档)
bashdocker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml arm64v8/clickhouse
bash# $PWD/data/clickhouse应存在且归当前用户所有 docker run --rm --user "${UID}:${GID}" --name some-clickhouse-server --ulimit nofile=262144:262144 -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" arm64v8/clickhouse
当使用挂载本地目录的镜像时,你可能需要指定用户以维护正确的文件所有权。使用--user参数并将/var/lib/clickhouse和/var/log/clickhouse-server挂载到容器内。否则,镜像将报错且无法启动。
bashdocker run --rm -e CLICKHOUSE_RUN_AS_ROOT=1 --name clickhouse-server-userns -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" arm64v8/clickhouse
有时你可能希望在容器启动时创建用户(默认使用default用户)和数据库。可通过环境变量CLICKHOUSE_DB、CLICKHOUSE_USER、CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT和CLICKHOUSE_PASSWORD实现:
bashdocker run --rm -e CLICKHOUSE_DB=my_database -e CLICKHOUSE_USER=username -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 -e CLICKHOUSE_PASSWORD=password -p 9000:9000/tcp arm64v8/clickhouse
default用户在未设置CLICKHOUSE_USER、CLICKHOUSE_PASSWORD或CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT的情况下,default用户默认禁用网络访问。
可通过将环境变量CLICKHOUSE_SKIP_USER_SETUP设置为1,使default用户不安全地可访问:
bashdocker run --rm -e CLICKHOUSE_SKIP_USER_SETUP=1 -p 9000:9000/tcp arm64v8/clickhouse
要在此镜像的派生镜像中执行额外初始化,可在/docker-entrypoint-initdb.d下添加一个或多个*.sql、*.sql.gz或*.sh脚本。在入口点调用initdb后,它将运行该目录中找到的所有*.sql文件、可执行*.sh脚本,并 sourcing 非可执行*.sh脚本,以在启动服务前进行进一步初始化。
此外,可提供环境变量CLICKHOUSE_USER和CLICKHOUSE_PASSWORD,初始化期间将用于clickhouse-client。
例如,要添加额外用户和数据库,可在/docker-entrypoint-initdb.d/init-db.sh中添加以下内容:
bash#!/bin/bash set -e clickhouse client -n <<-EOSQL CREATE DATABASE docker; CREATE TABLE docker.docker (x Int32) ENGINE = Log; EOSQL
查看此镜像中包含的软件的许可信息。
与所有Docker镜像一样,这些镜像可能还包含其他软件,可能受其他许可证约束(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可信息可能位于repo-info仓库的clickhouse/目录中。
对于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。


来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429