Docker 安装 ClickHouse 教程

Docker 安装 ClickHouse 教程

创建目录

首先,创建必要的目录用于存放 ClickHouse 的配置、数据和日志文件。

bash 复制代码
mkdir -p /home/clickhouse/conf
mkdir -p /home/clickhouse/data
mkdir -p /home/clickhouse/log
chmod -R 777 /home/clickhouse/conf
chmod -R 777 /home/clickhouse/data
chmod -R 777 /home/clickhouse/log

拉取 ClickHouse 镜像

使用 Docker 拉取最新的 ClickHouse 镜像。

bash 复制代码
docker pull yandex/clickhouse-server:latest

创建临时容器

创建一个临时容器以便于复制其配置文件。

bash 复制代码
docker run --rm -d --name=clickhouse-server \
  --ulimit nofile=262144:262144 \
  -p 8123:8123 -p 9009:9009 -p 9000:9000 \
  yandex/clickhouse-server:latest

复制配置文件

将容器内的配置文件复制到宿主机的指定目录。

bash 复制代码
docker cp clickhouse-server:/etc/clickhouse-server/config.xml /home/clickhouse/conf/config.xml
docker cp clickhouse-server:/etc/clickhouse-server/users.xml /home/clickhouse/conf/users.xml

停止临时容器

停止并移除临时容器。

bash 复制代码
docker stop clickhouse-server
docker rm clickhouse-server

生成密码

随机生成密码及对应的 SHA256 加密密码。

bash 复制代码
PASSWORD=$(base64 < /dev/urandom | head -c8)
echo "$PASSWORD"
echo -n "$PASSWORD" | sha256sum | tr -d '-'

修改密码

编辑 /home/clickhouse/conf/users.xml 文件,将生成的 SHA256 密码替换到 <password_sha256_hex> 标签内。

启动 ClickHouse 容器

使用以下命令启动 ClickHouse 容器。

bash 复制代码
docker run -d --name=clickhouse-server \
  -p 8123:8123 -p 9009:9009 -p 9000:9000 \
  --ulimit nofile=262144:262144 \
  -v /home/clickhouse/data:/var/lib/clickhouse:rw \
  -v /home/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
  -v /home/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
  -v /home/clickhouse/log:/var/log/clickhouse-server:rw \
  yandex/clickhouse-server:latest

连接 ClickHouse

使用 DBeaver 或其他 ClickHouse 客户端连接到 ClickHouse 服务器。

相关推荐
Alsn862 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
小胖xiaopangss2 天前
BRpc使用
c++·rpc
程序员老赵2 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
杨浦老苏2 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主2 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
kiros_wang2 天前
Docker 使用完整指南
运维·docker·容器
正经教主2 天前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器
CodeStats2 天前
【虚拟机】 从 CPU 指令到虚拟机隔离:虚拟机就是一个“模拟了完整硬件的普通进程”
java·docker
zhuzicc2 天前
Dubbo @Autowired 注入同模块接口,到底走的是本地调用还是 RPC?源码给你答案(Dubbo @Service注解的双重注册机制)
rpc·autowired·dubbo·依赖注入·java面试·spring ioc·dubbo源码分析
ai产品老杨2 天前
突破安防碎片化:基于 Docker 与边缘计算的 AI 视频智能化中台,如何通过 GB28181/RTSP 统一接入与全套源码交付实现二次开发自由?
人工智能·docker·边缘计算