docker部署的ragflow服務遷移 數據卷遷移

[docker ragflow數據遷移]目錄

  • 背景
  • 一、我的配置文件
    • ? 數據存儲路徑一覽(基于你的配置文件)
    • 關于這些 `volumes` 的說明
    • 📁 如何查看這些卷在本地的具體位置?
        • 可能用到的docker 命令如下。
    • 📦 總結建議
    • 🛠? 如果想自定義這些路徑
    • TODO 未完 待續 。。。

背景

通過 docker compose -f docker-compose.yml -p ragflow up -d 部署了 ragflow本地服務,現在想遷移到另一臺服務器上,服務可以通過github 拉取最新的 https://github.com/infiniflow/ragflow 代碼,重新配置啟動。
但是原服務器上添加過的數據,比如知識庫,怎么遷移到新服務器,避免重復添加,重復操作呢?

一、我的配置文件

啟動 ragflow 基礎配置文件如下 : docker-compose-base.yml
可以看到,各個基礎服務的 volumes 數據卷名稱和掛載信息

(base) root@hostname:/usr/local/soft/ai/rag/v0.19.0/ragflow/docker# vim docker-compose-base.ymlservices:es01:container_name: ragflow-es-01profiles:- elasticsearchimage: elasticsearch:${STACK_VERSION}volumes:- esdata01:/usr/share/elasticsearch/dataports:- ${ES_PORT}:9200env_file: .envenvironment:- node.name=es01- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}- bootstrap.memory_lock=false- discovery.type=single-node- xpack.security.enabled=true- xpack.security.http.ssl.enabled=false- xpack.security.transport.ssl.enabled=false- cluster.routing.allocation.disk.watermark.low=5gb- cluster.routing.allocation.disk.watermark.high=3gb- cluster.routing.allocation.disk.watermark.flood_stage=2gb- TZ=${TIMEZONE}mem_limit: ${MEM_LIMIT}ulimits:memlock:soft: -1hard: -1healthcheck:test: ["CMD-SHELL", "curl http://localhost:9200"]interval: 10stimeout: 10sretries: 120networks:- ragflowrestart: on-failureopensearch01:container_name: ragflow-opensearch-01profiles:- opensearchimage: hub.icert.top/opensearchproject/opensearch:2.19.1volumes:- osdata01:/usr/share/opensearch/dataports:- ${OS_PORT}:9201env_file: .envenvironment:- node.name=opensearch01- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}- OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD}- bootstrap.memory_lock=false- discovery.type=single-node- plugins.security.disabled=false- plugins.security.ssl.http.enabled=false- plugins.security.ssl.transport.enabled=true- cluster.routing.allocation.disk.watermark.low=5gb- cluster.routing.allocation.disk.watermark.high=3gb- cluster.routing.allocation.disk.watermark.flood_stage=2gb- TZ=${TIMEZONE}- http.port=9201mem_limit: ${MEM_LIMIT}ulimits:memlock:soft: -1hard: -1healthcheck:test: ["CMD-SHELL", "curl http://localhost:9201"]interval: 10stimeout: 10sretries: 120networks:- ragflowrestart: on-failureinfinity:container_name: ragflow-infinityprofiles:- infinityimage: infiniflow/infinity:v0.6.0-dev3volumes:- infinity_data:/var/infinity- ./infinity_conf.toml:/infinity_conf.tomlcommand: ["-f", "/infinity_conf.toml"]ports:- ${INFINITY_THRIFT_PORT}:23817- ${INFINITY_HTTP_PORT}:23820- ${INFINITY_PSQL_PORT}:5432env_file: .envenvironment:- TZ=${TIMEZONE}mem_limit: ${MEM_LIMIT}ulimits:nofile:soft: 500000hard: 500000networks:- ragflowhealthcheck:test: ["CMD", "curl", "http://localhost:23820/admin/node/current"]interval: 10stimeout: 10sretries: 120restart: on-failuresandbox-executor-manager:container_name: ragflow-sandbox-executor-managerprofiles:- sandboximage: ${SANDBOX_EXECUTOR_MANAGER_IMAGE-infiniflow/sandbox-executor-manager:latest}privileged: trueports:- ${SANDBOX_EXECUTOR_MANAGER_PORT-9385}:9385env_file: .envvolumes:- /var/run/docker.sock:/var/run/docker.socknetworks:- ragflowsecurity_opt:- no-new-privileges:trueenvironment:- TZ=${TIMEZONE}- SANDBOX_EXECUTOR_MANAGER_POOL_SIZE=${SANDBOX_EXECUTOR_MANAGER_POOL_SIZE:-3}- SANDBOX_BASE_PYTHON_IMAGE=${SANDBOX_BASE_PYTHON_IMAGE:-infiniflow/sandbox-base-python:latest}- SANDBOX_BASE_NODEJS_IMAGE=${SANDBOX_BASE_NODEJS_IMAGE:-infiniflow/sandbox-base-nodejs:latest}- SANDBOX_ENABLE_SECCOMP=${SANDBOX_ENABLE_SECCOMP:-false}- SANDBOX_MAX_MEMORY=${SANDBOX_MAX_MEMORY:-256m}- SANDBOX_TIMEOUT=${SANDBOX_TIMEOUT:-10s}healthcheck:test: ["CMD", "curl", "http://localhost:9385/healthz"]interval: 10stimeout: 5sretries: 5restart: on-failuremysql:# mysql:5.7 linux/arm64 image is unavailable.image: mysql:8.0.39container_name: ragflow-mysqlenv_file: .envenvironment:- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}- TZ=${TIMEZONE}command:--max_connections=1000--character-set-server=utf8mb4--collation-server=utf8mb4_unicode_ci--default-authentication-plugin=mysql_native_password--tls_version="TLSv1.2,TLSv1.3"--init-file /data/application/init.sql--binlog_expire_logs_seconds=604800ports:- ${MYSQL_PORT}:3306volumes:- mysql_data:/var/lib/mysql- ./init.sql:/data/application/init.sqlnetworks:- ragflowhealthcheck:test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}"]interval: 10stimeout: 10sretries: 3restart: on-failureminio:image: quay.io/minio/minio:RELEASE.2025-06-13T11-33-47Zcontainer_name: ragflow-miniocommand: server --console-address ":9001" /dataports:- ${MINIO_PORT}:9000- ${MINIO_CONSOLE_PORT}:9001env_file: .envenvironment:- MINIO_ROOT_USER=${MINIO_USER}- MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}- TZ=${TIMEZONE}volumes:- minio_data:/datanetworks:- ragflowrestart: on-failurehealthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3redis:# swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/valkey/valkey:8image: valkey/valkey:8container_name: ragflow-rediscommand: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lruenv_file: .envports:- ${REDIS_PORT}:6379volumes:- redis_data:/datanetworks:- ragflowrestart: on-failurehealthcheck:test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]interval: 5stimeout: 3sretries: 3start_period: 10svolumes:esdata01:driver: localosdata01:driver: localinfinity_data:driver: localmysql_data:driver: localminio_data:driver: localredis_data:driver: localnetworks:ragflow:driver: bridg

根據上面提供的 docker-compose-base.yml 配置文件內容,下面是 RAGFlow 各個組件在本地的數據存儲路徑說明:


? 數據存儲路徑一覽(基于你的配置文件)

組件容器內路徑本地路徑(默認)用途說明
MySQL/var/lib/mysqlmysql_data(默認在 Docker 管理的 volume 中)存儲用戶、文檔元數據等結構化信息
MinIO/dataminio_data(Docker volume)存儲上傳的原始文檔、處理后的文本等
Elasticsearch (es01)/usr/share/elasticsearch/dataesdata01(Docker volume)存儲關鍵詞搜索索引數據
OpenSearch (opensearch01)/usr/share/opensearch/dataosdata01(Docker volume)可選搜索引擎,用于檢索
Infinity(向量數據庫)/var/infinityinfinity_data(Docker volume)存儲向量索引
Redis/dataredis_data(Docker volume)緩存數據、任務狀態等
Sandbox Executor Manager無持久化數據用于運行沙箱任務,不持久化

關于這些 volumes 的說明

你在 docker-compose-base.yml 文件末尾定義了如下 volume:

volumes:esdata01:driver: localosdata01:driver: localinfinity_data:driver: localmysql_data:driver: localminio_data:driver: localredis_data:driver: local

這些 volumesDocker 管理的命名卷(named volumes),默認情況下它們會存儲在 Docker 的默認數據目錄中:

  • Linux 系統下通常為:/var/lib/docker/volumes/<volume_name>/_data

例如:

  • MySQL 數據實際路徑為:/var/lib/docker/volumes/mysql_data/_data
  • MinIO 數據實際路徑為:/var/lib/docker/volumes/minio_data/_data

📁 如何查看這些卷在本地的具體位置?

可能用到的docker 命令如下。

📦 總結建議

目標建議
查看數據存儲位置使用 docker volume inspect <volume_name>
備份數據備份對應路徑,如 /var/lib/docker/volumes/mysql_data/_data
自定義路徑修改 docker-compose-base.yml 中的 volumes 配置
清理數據刪除對應 volume,如 docker volume rm mysql_data

所以,我們想查看某個 volume 的實際路徑,可以有兩種方法:

  • find / -name ‘esdata01
  • docker volume inspect xxxx

本次我們使用如下命令,esdata01 是從上面配置文件中獲悉:

(base) root@hostname:/home/ltkj# docker volume inspect esdata01
[]
Error response from daemon: get esdata01: no such volume(base) root@hostname:/home/ltkj# docker volume inspect ragflow_esdata01

輸出示例:


[{"CreatedAt": "2025-06-13T10:52:28Z","Driver": "local","Labels": {"com.docker.compose.config-hash": "3bcef595c5f477c290ccaa07cbf05671d287fef95c1fa4b67fad841e66481794","com.docker.compose.project": "ragflow","com.docker.compose.version": "2.34.0","com.docker.compose.volume": "esdata01"},"Mountpoint": "/var/lib/docker/volumes/ragflow_esdata01/_data","Name": "ragflow_esdata01","Options": null,"Scope": "local"}
]

在這里插入圖片描述

這樣就能知道 esdata01,minio,MySQL 等基礎服務的數據存在哪里了。
在這里插入圖片描述


🛠? 如果想自定義這些路徑

可以在 volumes 配置中指定本地路徑,例如:

volumes:mysql_data:driver: localdriver_opts:type: noneo: binddevice: /opt/ragflow/mysql_data

這樣 MySQL 數據就會存在 /opt/ragflow/mysql_data


TODO 未完 待續 。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90539.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90539.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90539.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Chrome插件學習筆記(三)

Chrome插件學習筆記&#xff08;三&#xff09; 參考文章&#xff1a; https://blog.csdn.net/guoqiankunmiss/article/details/135847091https://blog.csdn.net/guoqiankunmiss/article/details/135974364 1、項目搭建 在前兩篇文章中使用的原生js去操作dom&#xff0c;很費勁…

Android系統中的4KB內存頁簡介

deepseek回答&#xff1a; Android系統中的4KB內存頁是虛擬內存管理的最小單位&#xff0c;其主要用途如下&#xff1a; 一、核心功能 虛擬地址映射 應用程序訪問內存時&#xff0c;系統將虛擬地址按4KB頁框映射到物理內存或磁盤空間&#xff0c;實現進程間的內存隔離和安全訪…

【Chrome】下載chromedriver的地址

下載chromedriver的地址低版本的最新版本的低版本的 http://chromedriver.storage.googleapis.com/index.html 最新版本的 https://googlechromelabs.github.io/chrome-for-testing/#stable

ISP算法——從顏色恒常性到白平衡

前面文章&#xff0c;介紹了人眼感知的物體顏色取決于光源的光譜組成與物體表面的光譜反射特性之間的相互作用。人類視覺的顏色感知是生物機制與認知智能協同作用的結果&#xff0c;人眼視網膜上的視錐細胞檢測光的顏色&#xff0c;視桿細胞分析光的亮度&#xff0c;再共同轉化…

工業缺陷檢測的計算機視覺方法總結

工業缺陷檢測的計算機視覺方法總結 傳統方法 特征提取方式&#xff1a; 顏色&#xff1a;基于HSV/RGB空間分析&#xff0c;如顏色直方圖、顏色矩等紋理&#xff1a;采用LBP、Haar、Gabor濾波器等算子提取紋理模式形狀&#xff1a;基于Hu矩、Zernike矩等數學描述符刻畫幾何特性尺…

js實現宮格布局圖片放大交互動畫

可直接運行代碼 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>五圖交互布局</title><style>* {box-sizing: border-box;margin: 0;padding: 0;}.gallery {display: grid;grid-template-c…

easyexcel流式導出

EasyExcel 支持流式導出&#xff0c;這是它的一個重要特性。流式導出可以有效解決大數據量導出時的內存溢出問題。流式導出的優勢內存友好 &#xff1a;不會一次性將所有數據加載到內存中適合大數據量 &#xff1a;可以處理百萬級甚至更多的數據性能穩定 &#xff1a;內存占用相…

廣州 VR 安全用電技術:工作原理、特性及優勢探析?

&#xff08;一&#xff09;沉浸式學習體驗? 在廣州&#xff0c;VR 用電安全培訓技術給用電安全培訓帶來變革。借助頭戴式顯示設備等硬件&#xff0c;結合 3D 建模和實時渲染技術&#xff0c;打造廣州特色用電場景。員工戴上 VR 設備進入虛擬電力場景&#xff0c;能看到電氣設…

2.Linux 網絡配置

Linux: 網絡配置 版本為centos7 網卡配置文件&#xff1a; /etc/sysconfig/network-scripts/ifcfg-ens33 [rootkami /]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet /類型&#xff1a;以太網 PROXY_METHODnone BROWSER_ONLYno BOOTPROTOnone /網絡配…

FPGA Verilog 入門語法指南

FPGA Verilog 入門語法指南 ?? 目錄 Verilog與C語言對比 基礎關鍵字 數據類型 運算符 控制結構 數值表示 阻塞與非阻塞賦值 模塊結構 預處理指令

【鴻蒙HarmonyOS Next App實戰開發】視頻提取音頻

在多媒體處理場景中&#xff0c;經常需要從視頻文件中提取純凈的音頻軌道。本文將介紹如何在HarmonyOS應用中實現這一功能&#xff0c;核心代碼基于ohos/mp4parser庫的FFmpeg能力。 功能概述 我們實現了一個完整的視頻音頻提取頁面&#xff0c;包含以下功能&#xff1a; 通過…

OpenHands:Manus 最強開源平替——本地部署與實戰指南

文章目錄?? 一、OpenHands 核心優勢&#xff1a;為何是 Manus 最佳平替&#xff1f;&#x1f9e0; 二、核心架構解析&#xff1a;多智能體如何協同工作&#xff1f;&#x1f6e0;? 三、本地化部署指南&#xff1a;Docke部署Docker 極速部署&#xff08;推薦&#xff09;&…

用 AI 做數據分析:從“數字”里挖“規律”

數據整理干凈后&#xff0c;就得分析了——算平均值、看差異、找關系&#xff0c;這些都能靠 AI 搞定。這節以“大學生在線學習滿意度”數據為例&#xff0c;教你用 AI 做描述性統計、假設檢驗、相關性分析&#xff0c;一步步從數據里挖規律&#xff0c;超詳細&#xff5e; 1. …

小程序安卓ApK轉aab文件詳情教程MacM4環境

根據Google Play的政策要求&#xff0c;自 2021 年 8 月起&#xff0c;Google Play 將開始要求新應用使用 Android App Bundle&#xff08;以下簡稱aab&#xff09; 進行發布。該格式將取代 APK 作為標準發布格式。 想了解更多關于aab的介紹可以直接閱讀android官方文檔&#x…

率先通過自動制冰性能認證,容聲冰箱推動行業品質升級

日前&#xff0c;容聲冰箱“電冰箱自動制冰性能認證”由中國家用電器研究院測試并通過&#xff0c;該認證為行業首次。這標志著中國家電行業在冰箱自動制冰功能的技術規范與品質保障領域樹立了全新里程碑&#xff0c;也將潔凈、高效的制冰體驗帶入中國家庭日常生活。目前&#…

大模型-batch之continuous batching

一、ORCA1.1 ORCA 概覽看下Continuous Batching 技術的開山之作ORCA,這個其實是融合的思路。ORCA&#xff1a;把調度粒度從請求級別調整為迭代級別&#xff0c;并結合選擇性批處理&#xff08;selective batching&#xff09;來進行優化。Sarathi[2] &#xff1a;利用Chunked P…

主要分布在背側海馬體(dHPC)CA1區域(dCA1)的時空聯合細胞對NLP中的深層語義分析的積極影響和啟示

時空聯合細胞&#xff08;Spatiotemporal Conjunctive Cells&#xff09;主要分布在背側海馬體CA1區&#xff08;dCA1&#xff09;&#xff0c;其核心功能是??同步編碼空間位置、時間信息和行為意圖??&#xff0c;形成動態的情景記憶表征。這種神經機制為自然語言處理&…

操作系統:系統程序(System Programs)

目錄 常見的系統程序類型 1?? 文件管理&#xff08;File Management&#xff09; 2?? 狀態信息&#xff08;Status Information&#xff09; 3?? 編譯器和程序開發&#xff08;Program Language Support&#xff09; 4?? 程序執行控制類&#xff08;Program Load…

【知識圖譜】Neo4j Desktop桌面版中國區被禁(無法打開)問題解決方法

【知識圖譜】Neo4j Desktop桌面版進程運行無法打開,UI 界面無法顯示問題解決辦法 前言 1.問題形式 2.原因分析 3.解決方法 3.1 方法一,斷網 3.2 方法二,手動設置代理 4.啟動Neo4j Desktop 前言 Neo4j Desktop桌面版安裝教程參考鏈接: https://zskp1012.blog.csdn.net/artic…

安裝acunetix軟件之后改www.ddosi.org.bat文件

安裝環境&#xff1a;windows11 通過網盤分享的文件&#xff1a;Acunetix_15.2.221208162_www.ddosi.org.zip 鏈接: https://pan.baidu.com/s/1FPFFr583FFFj6hxWB-Ygng?pwdjpim 提取碼: jpim 下載后文件是&#xff1a; 解壓之后&#xff0c;如下圖&#xff1a; 安裝步驟如…