You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨主机恢复Docker Grafana数据卷后无法登录,求问题排查

Grafana数据卷恢复后密码登录失败问题排查

问题描述

我尝试从另一台主机恢复已备份的Docker数据卷,该卷对应Grafana容器的/var/lib/grafana目录。
备份命令:

docker run --rm --volumes-from Grafana -v $(pwd):/backup busybox tar cvfz /backup/grafana.tar /var/lib/grafana

其中Grafana是挂载该卷的容器名称。将grafana.tar传输到新主机后,执行恢复命令:

docker run --rm --volumes-from grafana-new -v $(pwd):/backup busybox sh -c "cd /var/lib/grafana && tar xvf /backup/grafana.tar --strip 1"

grafana-new是已挂载同路径/var/lib/grafana卷的新容器。终端显示文件已解压:

nicola@nicola-virtualbox:~/Documenti/volume-backup$ docker run --rm --volumes-from grafana-new -v $(pwd):/backup busybox sh -c "cd /var/lib/grafana && tar xvf /backup/grafana.tar --strip 1"
var/lib/grafana/
var/lib/grafana/png/
var/lib/grafana/csv/
var/lib/grafana/plugins/
var/lib/grafana/alerting/
var/lib/grafana/alerting/1/
var/lib/grafana/alerting/1/__default__.tmpl
var/lib/grafana/grafana.db

但使用原主机的密码登录Grafana时提示密码错误。

问题原因及解决方法

核心原因

解压后的文件权限不匹配:Grafana容器默认以grafana用户(UID/GID为472)运行,而通过busybox解压的文件权限会被设置为root,导致Grafana进程无法正常读取存储用户密码的grafana.db文件。

修复步骤

  1. 先停止新主机上的grafana-new容器
    docker stop grafana-new
    
  2. 重新执行恢复命令,同时修正目录及文件的权限
    docker run --rm --volumes-from grafana-new -v $(pwd):/backup busybox sh -c "cd /var/lib/grafana && tar xvf /backup/grafana.tar --strip 1 && chown -R 472:472 /var/lib/grafana"
    
  3. 启动grafana-new容器
    docker start grafana-new
    

验证方法

  • 进入容器查看grafana.db的权限是否正确:
    docker exec -it grafana-new ls -l /var/lib/grafana/grafana.db
    
    正常输出应显示属主为grafana grafana(对应UID 472)。
  • 若权限正确仍无法登录,可检查备份的grafana.db是否完整:在原主机使用sqlite3 grafana.db打开文件,查看user表是否存在有效数据。

内容的提问来源于stack exchange,提问作者NicoCaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:03:36