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

ClickHouse Docker 容器迁移指南:从测试环境到离线正式环境

ClickHouse Docker 容器迁移指南:从测试环境到离线正式环境

在实际开发和运维过程中,我们经常需要将测试环境中的服务迁移到正式环境,尤其是当正式环境处于离线状态时,这种迁移会变得更加复杂。本文将详细介绍如何将运行在 Docker 中的 ClickHouse 服务从测试环境迁移到无法联网的正式环境,并确保数据和配置的一致性。

环境版本说明

项目测试环境正式环境说明
操作系统Linux x86_64Linux x86_64确保两个环境的操作系统架构一致。
Docker 版本Docker 18.06.3-ceDocker 24.0.6版本差异较大,但通常不影响镜像迁移。
ClickHouse 镜像clickhouse-server:latest
镜像 ID: 6bfc295513dd
clickhouse-server:latest
镜像 ID: 待迁移后确认
确保镜像版本一致,避免兼容性问题。
数据存储路径/home/clickhouse/data/home/clickhouse/data数据目录路径需要一致,以确保数据迁移后能够正确加载。
配置文件路径/home/clickhouse/conf/home/clickhouse/conf配置文件路径需要一致,以确保 ClickHouse 使用正确的配置启动。
端口映射8123:8123
19000:9000
8123:8123
19000:9000
确保端口映射一致,以便服务能够正常访问。

迁移步骤

1.导出测试环境中的 ClickHouse 镜像

在测试环境中,运行以下命令将 ClickHouse 镜像保存为.tar文件:

docker save 6bfc295513dd > clickhouse-server-latest.tar

2.备份测试环境中的 ClickHouse 数据和配置文件

根据你的容器配置,数据目录为/home/clickhouse/data,配置文件目录为/home/clickhouse/conf。运行以下命令备份这些目录:

tar -czvf clickhouse-data.tar.gz /home/clickhouse/data
tar -czvf clickhouse-config.tar.gz /home/clickhouse/conf

3.将镜像和数据拷贝到正式环境

由于正式环境无法联网,你需要通过外部存储设备(如 U 盘、移动硬盘或网络共享存储)将以下文件拷贝到正式环境:

clickhouse-server-latest.tar(镜像文件)

clickhouse-data.tar.gz(数据文件)

clickhouse-config.tar.gz(配置文件)


4.在正式环境中加载 ClickHouse 镜像

在正式环境中,运行以下命令加载镜像:

docker load < clickhouse-server-latest.tar

加载完成后,运行以下命令确认镜像已正确加载:

docker images

你应该会看到类似以下的输出:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
clickhouse-server   latest              6bfc295513dd        11 months ago       952MB

5.在正式环境中创建数据和配置目录

在正式环境的宿主机上,创建与测试环境相同的目录结构:

mkdir -p /home/clickhouse/data
mkdir -p /home/clickhouse/conf

6.将备份的数据和配置文件恢复到正式环境

将备份的数据和配置文件解压到正式环境的宿主机目录中:

tar -xzvf clickhouse-data.tar.gz -C /home/clickhouse/data
tar -xzvf clickhouse-config.tar.gz -C /home/clickhouse/conf

7.启动 ClickHouse 容器

根据你的测试环境容器配置,启动 ClickHouse 容器时需要挂载相同的目录和端口。运行以下命令:

docker run -d --name clickhouse-server \
    -p 8123:8123 \
    -p 19000:9000 \
    -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/data:/var/lib/clickhouse \
    clickhouse-server:latest

8.验证数据和配置一致性

在正式环境中,连接到 ClickHouse 容器,检查数据和配置是否正确加载:

docker exec -it clickhouse-server clickhouse-client

执行以下命令验证数据和配置:

SHOW DATABASES;
SELECT * FROM system.tables LIMIT 10;

注意事项

Docker 版本兼容性

• 虽然 Docker 18.06.3-ce 和 Docker 24.0.6 之间存在版本差异,但docker savedocker load命令通常可以正常工作。如果在加载镜像时遇到问题,请检查 Docker 日志以获取更多信息。

• 如果遇到兼容性问题,可以考虑在正式环境中升级 Docker 版本,或者在测试环境中降级 Docker 版本以匹配正式环境。

数据和配置文件的权限

• 确保/home/clickhouse/data/home/clickhouse/conf目录的权限正确,ClickHouse 容器能够正常访问和写入这些目录。

• 如果权限不足,可以使用以下命令调整权限:

  chown -R 1001:1001 /home/clickhouse/data
  chown -R 1001:1001 /home/clickhouse/conf

网络配置

• 如果正式环境中有特定的网络配置需求(如自定义网络或防火墙规则),请确保 ClickHouse 容器的网络设置与测试环境一致。


通过以上步骤和环境版本说明,你可以清晰地了解测试环境和正式环境的配置差异,并确保 ClickHouse 镜像和数据能够顺利迁移到无法联网的正式环境中。

希望本文对你有所帮助!如果有任何问题,欢迎在评论区交流。

相关文章:

  • 【css酷炫效果】纯CSS实现大风车旋转效果
  • 【2025】LLM(大模型)开源项目介绍与使用场景
  • 火山引擎(豆包大模型)(抖音平台)之火山方舟的Prompt的使用测试
  • 利用大语言模型生成的合成数据训练YOLOv12:提升商业果园苹果检测的精度与效
  • Log4j2漏洞实战
  • 学有所得-Deepin linux操作系统在安装nvidia显卡驱动后的问题修复
  • IT6636: 3-IN 1-OUT HDMI 2.1 (48 Gbps) Retiming Switch with Embedded MCU
  • mybatis_plus的乐观锁
  • C++《红黑树》
  • Python第五章05:银行ATM机程序
  • 蓝桥杯备考:DFS求最短路之字串变换
  • TCP协议的多线程应用、多线程下的网络编程
  • 数字孪生的建模师blender和maya你更喜欢用哪个?
  • 【图像处理基石】什么是动态范围?
  • 数据结构入门(1)——算法复杂度
  • 【Linux】Bash是什么?怎么使用?
  • 【力扣刷题实战】最大连续1的个数 III
  • QQ村旅游网站的设计基于SSM项目的【QQ村旅游网站的设计】
  • 若依分离版整合多数据源——Phoenix+HBase
  • 【初始C语言】转义字符
  • 朝鲜称将在各领域采取反制措施,应对美国敌对挑衅
  • 查幽门螺杆菌的这款同位素长期被海外垄断,秦山核电站实现突破
  • 全国省市县国土空间总体规划已基本批复完成,进入全面实施阶段
  • 媒体评欧阳娜娜遭民进党当局威胁:艺人表达国家认同是民族大义
  • 因港而兴,“长江黄金水道”上的宜宾故事
  • 中日东三省问题的源起——《1905年东三省事宜谈判笔记》解题