保姆级教程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=true | Docker会赋予容器几乎与宿主机相同的权限 |
| --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博客
相关文章:
保姆级教程Docker部署ClickHouse镜像
目录 1、安装Docker及可视化工具 2、创建挂载目录 3、运行ClickHouse容器 4、Compose运行ClickHouse容器 5、查看ClickHouse运行状态 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化管理工具 2、创建挂载目录 # 创…...
【Rust自学】7.3. 路径(Path)Pt.2:访问父级模块、pub关键字在结构体和枚举类型上的使用
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.3.1. super 我们可以通过在路径开头使用super来访问父级模块路径中的内容,就像使用..语法启动文件系统路径。例如ÿ…...
【前端,TypeScript】TypeScript速成(七):数组与函数式编程相结合
数组与函数式编程相结合 使用函数式编程遍历数组 一个最简单的例子如下: const a [1, 2, 3, 4]a.forEach(v > {console.log(v) })由于此处使用了函数式编程,因此我们可以做一些比 console.log 更复杂的事情,比如将 a 中的数据放到另一…...
第十六届蓝桥杯模拟赛(第一期)(C语言)
判断质因数 如果一个数p是个质数,同时又是整数a的约数,则p称为a的一个质因数。 请问2024有多少个质因数。 了解 约数,又称因数。整数a整除整数b,b为a的因数(约数)质数,又称素数。只有1和它本身两…...
Linux应用软件编程-多任务处理(管道)
管道:进程间通信的文件 管道特点: 1. 读阻塞: 读端和写端都存在时, 当管道中无数据时,read阻塞等待读。 2. read到0:当所有的写端关闭,管道中有数据时,读到数据,无数据…...
如何在鸿蒙本地模拟器中使用HDC工具
引言 HDC是指华为设备连接(Huawei Device Connector)工具。它的作用类似Android开发的ADB工具。在华为鸿蒙(HarmonyOS)操作系统的开发过程中,HDC工具起到了至关重要的作用。它允许开发者在开发主机(如 PC&…...
《Vue进阶教程》第三十一课:ref的初步实现
往期内容: 《Vue进阶教程》第二十课:lazy懒执行 《Vue进阶教程》第二十一课:支持缓存 《Vue进阶教程》第二十二课:自定义更新(调度器) 《Vue进阶教程》第二十三课:渲染计算属性的结果 《Vue进阶教程》第二十四课&…...
C语言初阶习题【19】三子棋游戏
1.实现三子棋游戏 2.思路 我们把游戏实现部分放在game.c和game.h中,把游戏的测试代码放到test.c中 main函数在test.c中。 2.1 test.c中 先写main 函数,在main函数中调用test函数。 int main() {test();return 0; }test.c函数实现让玩家进行选择是否…...
Linux day 1129
家人们今天继续学习Linux,ok话不多说一起去看看吧 三.Linux常用命令 3.1 Linux命令体验 3.1.1 常用命令演示 在这一部分中,我们主要介绍几个常用的命令,让大家快速感 受以下 Linux 指令的操作方式。主要包含以下几个指令: ls命…...
【优化算法】梯度优化算法:一种新的原启发式优化算法算法
目录 1.摘要2.算法原理3.结果展示4.参考文献5.获取代码 1.摘要 本文提出了一种新型的元启发式优化算法——梯度优化器(Gradient-based Optimizer, GBO)。GBO算法灵感来源于牛顿法,采用两个主要操作:梯度搜索规则(Grad…...
内部类(3)
大家好,今天我们继续来看看内部类,今天我们来学习一下内部类的分类,我们来看看一共有几种,它们有什么作用,那么话不多说,我们直接开始。 9.1 内部类的分类 先来看下,内部类都可以在一个类的哪些位置进行定…...
svn分支相关操作(小乌龟操作版)
在开发工作中进行分支开发,涉及新建分支,分支切换,合并分支等 新建远程分支 右键选择branch/tagert按钮 命名分支的路径名称 点击确定后远程分支就会生成一个当时命名的文件夹(开发分支) 分支切换 一般在开发阶段&a…...
rust_shyper
title: 探索 Rust_Shyper:系统编程的新前沿 date: ‘2024-12-30’ category: blog tags: Rust_ShyperRust 语言系统编程性能与安全 sig: Virt archives: ‘2024-12’ author:way_back summary: Rust_Shyper 作为基于 Rust 语言的创新项目,在系统编程领域…...
HAL 库 HAL_UARTEx_ReceiveToIdle_IT 函数解析
一、存在位置:stm32f1xx_hal_uart.c 二、具体代码 二、返回值:HAL_StatusTypeDef 通过查看返回值HAL_StatusTypeDef在stm32f1xx_hal_edf.h文件中定义为结构体类型。 status:(进展的)状况,情形 三、函数名…...
【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享
学术科研啥的要用到很多数据,nc文件融合了时间空间数据是科研重要文件。之前分享过怎样将nc文件处理成栅格后整理成表格。小编的读者还是有跑不通整个流程的,再来做一篇总结篇,也分享下练习数据跟工具,如果还是弄不了的࿰…...
REDIS的集群
REDIS的集群模式: 主从模式:redis高可用的基础,哨兵和集群都是建立在此基础之上 特点: 主从模式和数据库的主从模式(工作模式)是一样的,主负责写入,然后把写入到数据同步到从&…...
酒店管理系统的设计与实现【源码+文档+部署讲解】
酒店管理系统的设计与实现 摘 要 中国经济近几年来取得蓬勃飞速发展,使得人民生活水平的要求和生活的质量有了很高的要求。因此人们对外出旅游和就餐的需求也越来越大。同时,随着我国科技水平的兴起和对互联网新时代的大力支持,酒店管理系统在…...
[论文阅读] (34)ESWA2024 基于SGDC的轻量级入侵检测系统
《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…...
从社区共识到资本效能:解析SYNBO的去中心化投资协议创新
Web3 资本市场正处于深刻变革的关键节点。随着去中心化技术的不断进化,传统风险投资模式逐渐显现出效率、透明性与公平性等方面的局限性。而 SYNBO 的出现,为这一市场注入了全新的可能性。 作为新一代去中心化风险投资协议,SYNBO 不仅创新性地…...
一、数据库 Sqlite3 资料
SQLite3 教程 SQLite3 是一个轻量级的嵌入式数据库引擎,它不需要单独的服务器进程,数据库直接存储在磁盘文件中。Python 内置了 sqlite3 模块,可以方便地操作 SQLite 数据库。以下是 SQLite3 的详细教程。 1. SQLite3 简介 SQLite3 是一个自…...
BilibiliDown:让B站无损音频下载更高效的跨平台工具
BilibiliDown:让B站无损音频下载更高效的跨平台工具 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/…...
nli-distilroberta-base模型解析:深入理解其与计算机组成原理的关联
nli-distilroberta-base模型解析:深入理解其与计算机组成原理的关联 1. 引言:当自然语言处理遇上计算机组成原理 你可能已经用过nli-distilroberta-base这个轻量级的自然语言推理模型,但有没有想过它在计算机底层是如何运作的?就…...
PADS Layout VX.2.2 - 贴片元器件坐标导出与Excel解析实战
1. 从PADS Layout导出贴片坐标的完整流程 第一次用PADS Layout导出坐标文件时,我对着那个CAM Plus对话框研究了半天——到底该选哪个格式?输出文件怎么变成Excel?这些坑我都踩过。现在就把最稳的操作流程分享给你,保证5分钟搞定。…...
还在手动拖动进度条整理长视频总结?2026年这4款AI视频总结工具,3分钟搞定1小时长片
我做内容创作快五年,光整理音视频素材这块,踩过的坑能绕办公桌三圈。之前天天手动拖进度条截重点,一小时长视频整理完大半天就没了。测了市面上十多款热门AI视频总结工具,我可以直接给结论:听脑AI是同类工具中最值得用…...
终极Windows 11优化指南:如何用Win11Debloat一键清理系统臃肿
终极Windows 11优化指南:如何用Win11Debloat一键清理系统臃肿 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter…...
C++ 拷贝构造函数深度解析:从浅拷贝到深拷贝
引言在 C 面向对象编程中,拷贝构造函数是一个既基础又容易出错的话题。很多初学者(包括曾经的我)在遇到指针成员时,常常因为默认的浅拷贝而导致程序崩溃或内存错误。我想通过自己的学习笔记和实践经验,系统地分享拷贝构…...
Oracle到MySQL迁移必看:INSTR函数跨库兼容处理指南(附SQLServer替代方案)
Oracle到MySQL迁移实战:INSTR函数深度兼容方案与企业级案例解析 当企业面临数据库迁移需求时,函数兼容性往往是技术团队最头疼的问题之一。作为字符串处理的核心函数,INSTR在Oracle、MySQL和SQL Server三大主流数据库中存在显著差异。本文将深…...
终极图像分类指南:从海豚到多类别的机器学习实战
终极图像分类指南:从海豚到多类别的机器学习实战 【免费下载链接】have-fun-with-machine-learning An absolute beginners guide to Machine Learning and Image Classification with Neural Networks 项目地址: https://gitcode.com/gh_mirrors/ha/have-fun-wit…...
GraalVM原生镜像与MongoDB Java驱动:构建极致性能的微服务应用
GraalVM原生镜像与MongoDB Java驱动:构建极致性能的微服务应用 【免费下载链接】mongo-java-driver The official MongoDB drivers for Java, Kotlin, and Scala 项目地址: https://gitcode.com/gh_mirrors/mo/mongo-java-driver 在当今云原生和微服务架构盛…...
从零到上线仅需4步,Mojo调用Python生态的隐藏API全解密,内部技术白皮书首次公开
第一章:从零到上线仅需4步,Mojo调用Python生态的隐藏API全解密,内部技术白皮书首次公开Mojo 作为新一代系统级编程语言,原生支持无缝调用 Python 生态——但其关键能力并非来自 import 语句,而是通过未公开的 python 装…...
