当前位置: 首页 > news >正文

保姆级教程Docker部署ClickHouse镜像

目录

1、安装Docker及可视化工具

2、创建挂载目录

3、运行ClickHouse容器

4、Compose运行ClickHouse容器

5、查看ClickHouse运行状态


1、安装Docker及可视化工具

Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化管理工具

2、创建挂载目录

# 创建宿主机rabbitMQ挂载目录
sudo mkdir -p /data/docker/clickhouse

3、获取配置文件

# 1.拉取镜像
sudo docker pull clickhouse/clickhouse-server:24.12# 2.启动一个临时容器,为了拿配置文件
sudo docker run --rm -d --name=temp-clickhouse-server clickhouse/clickhouse-server:24.12# 3.复制配置文件到宿主机
sudo mkdir -p /data/docker/clickhouse/config
sudo docker cp temp-clickhouse-server:/etc/clickhouse-server/users.xml /data/docker/clickhouse/config/users.xml
sudo docker cp temp-clickhouse-server:/etc/clickhouse-server/config.xml /data/docker/clickhouse/config/config.xml# 4.删除临时容器
sudo docker rm -f temp-clickhouse-server

3.1、配置文件中添加用户

添加root用户,打开users.xml文件,把下面的内容复制到 <users></users>标签中

<root><password_sha256_hex>7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3</password_sha256_hex><networks incl="networks" replace="replace"><ip>::/0</ip></networks><profile>default</profile><quota>default</quota>
</root>

其中password_sha256_hex的生成方式如下:

echo -n "clickhouse" | sha256sum | tr -d '-'7e099f39b84ea79559b3e85ea046804e63725fd1f46b37f281276aae20f86dc3

4、运行ClickHouse容器

# 1.启动镜像
sudo docker run --privileged=true --net=bridge \
-p 8123:8123 \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
-v /data/docker/clickhouse/data:/var/lib/clickhouse \
-v /data/docker/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml \
-v /data/docker/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml \
-v /data/docker/clickhouse/log:/var/log/clickhouse-server \
-e CLICKHOUSE_DB=gps \
-e CLICKHOUSE_USER=root \
-e CLICKHOUSE_PASSWORD=clickhouse \
-e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \
-e TZ=Asia/Shanghai \
-d clickhouse/clickhouse-server:24.12

参数解析如下:

参数参数说明
docker run运行 Docker 容器
-d clickhouse/clickhouse-server:22.12后台运行clickhouse-server容器
--privileged=trueDocker会赋予容器几乎与宿主机相同的权限
--net=bridge网络模式配置,默认是bridge,bridge表示使用容器内部配置网络
--name clickhouse-server给容器指定一个名称,以便于管理和引用该容器
-p 8123:8123将主机的 8123 端口映射到容器的 8123 端口
--ulimit nofile=262144:262144

设置容器内 ClickHouse 进程的文件打开数量限制,

防止因文件描述符不足导致问题

-e CLICKHOUSE_DB=gps设置 ClickHouse 的默认数据库名为 gps
-e CLICKHOUSE_USER=root设置 ClickHouse 的默认管理员用户名为 root
-e CLICKHOUSE_PASSWORD=clickhouse设置 ClickHouse 的管理员账号密码为 clickhouse
-e TZ=Asia/Shanghai设置容器的时区为上海时间,便于处理时间相关的数据
-e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1启用 ClickHouse 的访问控制功能,需要设置管理员账号密码才能进行操作
-v /data/docker/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml将主机中 /data/docker/clickhouse/config/config.xml 文件映射到容器内的 /etc/clickhouse-server/config.xml 文件,这样可以提供自定义的 ClickHouse 配置文件
-v /data/docker/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml将主机中 /data/docker/clickhouse/config/users.xml 文件映射到容器内的 /etc/clickhouse-server/users.xml 文件,这样可以提供自定义的用户认证信息
-v /data/docker/clickhouse/data:/var/lib/clickhouse将主机data目录挂载到容器内,用于数据持久化
-v /data/docker/clickhouse/log:/var/log/clickhouse-server将主机log目录挂载到容器内,用于日志文件持久化

容器运行参数详解参考:Docker容器运行常用参数详解-CSDN博客 

5、Compose运行ClickHouse容器

创建docker-compose.yml文件

sudo touch /data/docker/clickhouse/docker-compose.yml

文件内容如下:

version: '3'services:rabbitmq:image: clickhouse/clickhouse-server:24.12container_name: clickhouse-serverports:- "8123:8123"ulimits:nofile:soft: 262144hard: 262144environment:CLICKHOUSE_DB: gpsCLICKHOUSE_USER: rootCLICKHOUSE_PASSWORD: clickhouseCLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1TZ: Asia/Shanghaivolumes:- /data/docker/clickhouse/data:/var/lib/clickhouse- /data/docker/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml- /data/docker/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml- /data/docker/clickhouse/log:/var/log/clickhouse-serverprivileged: truenetwork_mode: "bridge"

运行容器

#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/clickhouse/docker-compose.yml up -d

6、查看ClickHouse运行状态

7、安装包部署

部署ClickHouse单机版和集群可参考:Linux下部署ClickHouse单机版和集群-CSDN博客

http://www.lryc.cn/news/512529.html

相关文章:

  • 【Rust自学】7.3. 路径(Path)Pt.2:访问父级模块、pub关键字在结构体和枚举类型上的使用
  • 【前端,TypeScript】TypeScript速成(七):数组与函数式编程相结合
  • 第十六届蓝桥杯模拟赛(第一期)(C语言)
  • Linux应用软件编程-多任务处理(管道)
  • 如何在鸿蒙本地模拟器中使用HDC工具
  • 《Vue进阶教程》第三十一课:ref的初步实现
  • C语言初阶习题【19】三子棋游戏
  • Linux day 1129
  • 【优化算法】梯度优化算法:一种新的原启发式优化算法算法
  • 内部类(3)
  • svn分支相关操作(小乌龟操作版)
  • rust_shyper
  • HAL 库 HAL_UARTEx_ReceiveToIdle_IT 函数解析
  • 【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享
  • REDIS的集群
  • 酒店管理系统的设计与实现【源码+文档+部署讲解】
  • [论文阅读] (34)ESWA2024 基于SGDC的轻量级入侵检测系统
  • 从社区共识到资本效能:解析SYNBO的去中心化投资协议创新
  • 一、数据库 Sqlite3 资料
  • Passlib库介绍及使用指南
  • 模型选择+过拟合欠拟合
  • 绝美的数据处理图-三坐标轴-散点图-堆叠图-数据可视化图
  • 损失函数-二分类和多分类
  • 汽车损坏识别检测数据集,使用yolo,pasical voc xml,coco json格式标注,6696张图片,可识别11种损坏类型,识别率89.7%
  • 从 Elastic 迁移到 Easysearch 指引
  • Yapi RCE 复现和批量编写
  • 【2024年-9月-21日-开源社区openEuler实践记录】PilotGo:简化运维管理的开源利器
  • ubuntu 20.04 国内源安装docker
  • 比亚迪30亿教育慈善基金正式启动,助推中国科教进步
  • 【链表】重排链表,看似复杂实则并不简单~