保姆级教程Docker部署ClickHouse镜像

目录

1、安装Docker及可视化工具

2、创建挂载目录

3、获取配置文件

4、运行ClickHouse容器

5、Compose运行ClickHouse容器

6、查看ClickHouse运行状态

7、安装包部署


1、安装Docker及可视化工具

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

2、创建挂载目录

bash 复制代码
# 创建宿主机rabbitMQ挂载目录
sudo mkdir -p /data/docker/clickhouse

3、获取配置文件

bash 复制代码
# 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

4、运行ClickHouse容器

bash 复制代码
# 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_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_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文件

bash 复制代码
sudo touch /data/docker/clickhouse/docker-compose.yml

文件内容如下:

bash 复制代码
version: '3'
 
services:
  rabbitmq:
    image: clickhouse/clickhouse-server:24.12
    container_name: clickhouse-server
    ports:
      - "8123:8123"
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    environment:
      CLICKHOUSE_USER: root
      CLICKHOUSE_PASSWORD: clickhouse
      CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
      TZ: Asia/Shanghai
    volumes:
      - /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-server
    privileged: true
    network_mode: "bridge"

运行容器

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

6、查看ClickHouse运行状态

7、安装包部署

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

相关推荐
小义_12 小时前
【Kubernetes】(九)Service 2
云原生·容器·kubernetes
天籁晴空14 小时前
Docker Compose 部署完整指南 -- RuoYi-Vue
docker·ruoyi
@土豆14 小时前
Elasticsearch 9.0.1 集群部署(Docker Compose + k8s 部署方式)
大数据·elasticsearch·docker
Cyber4K15 小时前
【Kubernetes专项】温故而知新,重温技术原理(2)
云原生·容器·kubernetes
雨奔17 小时前
Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控
网络·容器·kubernetes
身如柳絮随风扬17 小时前
Kubernetes v1.20.9 集群搭建
云原生·容器·kubernetes
蛐蛐蛐19 小时前
在Windows 11上安装Docker的踩坑记录
运维·docker·容器
古典和浪漫19 小时前
docker file 中设置软链接和在k8s 中配置同步时区 有什么区别,各自优缺点
docker·容器·kubernetes
成为你的宁宁20 小时前
【K8s ServiceAccount 机制原理与 RBAC 权限实战应用】
云原生·容器·kubernetes
尘世壹俗人20 小时前
知识点12---k8s进阶操作方式yaml资源文件
docker·容器·kubernetes