uptime-kuma 从 docker run 迁移到 compose:数据卷的坑
背景uptime-kuma 当初是用 docker run 手起的命令大概长这样docker run -d --restartalways \ -p 3001:3001 \ -v uptime-kuma:/app/data \ --name uptime-kuma \ louislam/uptime-kuma:1问题不在 compose 里服务器重启后要手动管配置改动没有版本记录端口暴露公网。想迁移到 compose但数据不能丢里面有告警规则、监控目标、历史记录。原因关键概念Docker 卷是独立的。docker run 时创建的卷叫 uptime-kuma如果直接用 compose 定义同名卷compose 会自动加项目前缀变成 xxx_uptime-kuma新卷新容器读新卷看不到老数据正确做法在 compose 里声明 external: true告诉 compose用现有的卷别新建。解决第一步备份数据保命mkdir -p ~/backups/uptime-kuma docker run --rm \ -v uptime-kuma:/data \ -v /home/YOUR_USER/backups/uptime-kuma:/backup \ alpine \ tar czf /backup/uptime-kuma-$(date %F).tar.gz -C /data . # 验证备份里有 kuma.db tar tzf ~/backups/uptime-kuma/*.tar.gz | grep kuma.db看到 kuma.db 才算备份成功。第二步写 compose 文件services: uptime-kuma: image: louislam/uptime-kuma:1 container_name: uptime-kuma restart: always ports: - 127.0.0.1:3001:3001 # 撤下公网 volumes: - uptime-kuma:/app/data environment: - TZAsia/Shanghai mem_limit: 256m logging: driver: json-file options: max-size: 10m max-file: 3 volumes: uptime-kuma: external: true # 关键用现有卷不新建external: true 是这一篇的核心。第三步验证 compose 解析结果dockercompose config|grep-A2volumes:volumes: uptime-kuma: name: uptime-kuma ← 必须是 uptime-kuma如果看到 name: uptime-kuma_uptime-kuma → 停下external: true 没生效会新建卷、丢数据。第四步迁移1 分钟窗口# 停 删旧容器不加 -vdockerstop uptime-kumadockerrmuptime-kuma# 确认卷还在dockervolumels|grepuptimedockervolume inspect uptime-kuma|grepMountpoint# 用 compose 起新容器cd/home/YOUR_USER/uptime-kumadockercompose up-d⚠️ docker rm 千万不要加 -v——加了会连卷一起删。第五步验证数据完整dockerlogs uptime-kuma21|grep-EConnected|Listening|tail-5[SERVER] INFO: Connected [SERVER] INFO: Listening on 3001Connected 成功读到老数据。浏览器登进去监控目标、通知配置、历史记录都在。三个坑坑 1忘了 external: truecompose 默认会给卷加项目前缀。docker run 建的 uptime-kuma 卷到 compose 里会变成 项目名_uptime-kuma——新卷、空的、数据全丢。坑 2docker rm 加了 -vdocker rm uptime-kuma 删容器卷保留。docker rm -v uptime-kuma 删容器 删卷——数据全没。迁移时永远不加 -v。坑 3迁移前后没验证 kuma.db迁移前 tar 备份里要有 kuma.db迁移后容器日志里要有 Connected。前后两头都验证才能保证数据没丢。外加推荐一部电影挽救计划昨天看完的个人感觉——好看

相关新闻

Awesome OpenClaw Skills 完整安装使用指南:从 ClawHub 拉取到 CLI 验证的 TaoToken 配置实践

Awesome OpenClaw Skills 完整安装使用指南:从 ClawHub 拉取到 CLI 验证的 TaoToken 配置实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:21:20 阅读更多 →
解决cursor.rowcount返回值类型问题:TaoToken统一Key通道下的数据库驱动兼容排查

解决cursor.rowcount返回值类型问题:TaoToken统一Key通道下的数据库驱动兼容排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:21:20 阅读更多 →
AgentChat多智能体对话框架:架构设计与开发实操指南

AgentChat多智能体对话框架:架构设计与开发实操指南

多智能体对话框架这两年从论文里的概念一路卷到了工程落地,AgentChat 算是其中比较有代表性的一个方向。我最早接触这类框架是在做一个内部知识问答系统的重构,当时单 Agent 的方案已经撑不住复杂任务了——一个模型既要理解意图、又要查资料、还要做校验…

2026/10/4 9:21:20 阅读更多 →

最新新闻

Himalaya pimdir.root 路径 Shell 展开:让 `~/.local/state/neverest/…` 真正指向家目录下的离线邮件仓库

Himalaya pimdir.root 路径 Shell 展开:让 `~/.local/state/neverest/…` 真正指向家目录下的离线邮件仓库

CLI 【免费下载链接】himalaya CLI to manage emails 项目地址: https://gitcode.com/gh_mirrors/hi/himalaya 点击查看 免费下载 本篇技术指南围绕 himalaya 的 pimdir 变更 pimdir-root-shell-expand 展开,讲解 pimdir.root 配置项的 ~ 与环境变量展开…

2026/10/4 9:50:38 阅读更多 →
CIC-IDS数据集特征体系详解:从流量采集到入侵检测建模

CIC-IDS数据集特征体系详解:从流量采集到入侵检测建模

做网络安全数据分析这几年,我陆陆续续用过的数据集不算少,从早期论文里最常见的NSL-KDD,到后来做流量检测时经常被拿来当基准的CIC-IDS系列。如果有人让我只推荐一个数据集用来研究和入门网络入侵检测,我大概率会先提CIC-IDS 2017…

2026/10/4 9:50:38 阅读更多 →
插件加载失败?从“harness”到“did not activate”的排查指南

插件加载失败?从“harness”到“did not activate”的排查指南

最近只要你在折腾任何带插件系统的软件,十有八九会被同一类报错折腾到怀疑人生:harness failed to load plugins、failed to load plugins web boot: 2 entries did not activate、1 entry did not activate huayu-yuan……光看这一行英文,你…

2026/10/4 9:50:38 阅读更多 →
OpenClaw 爆火背后:把 AI 智能体接进 TaoToken 的配置清单

OpenClaw 爆火背后:把 AI 智能体接进 TaoToken 的配置清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:50:38 阅读更多 →
Gemini CLI 每天1000次免费请求:把 API Key 改到 TaoToken 的终端配置指南

Gemini CLI 每天1000次免费请求:把 API Key 改到 TaoToken 的终端配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:50:38 阅读更多 →
Flask环境配置30秒速成:venv隔离+最小应用实战

Flask环境配置30秒速成:venv隔离+最小应用实战

Flask环境配置能有多快?如果只说装依赖,我实测下来,从打开终端到跑起一个最小项目,30秒真的够。前提是你别一上来就研究虚拟环境理论,也别在pip命令里纠结半天,更别被网上那些“从装Python开始”的保姆级教…

2026/10/4 9:49:38 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →