在另一台主机上恢复 docker 卷

问题描述 投票:0回答:1

所以,我正在尝试恢复从另一台主机备份的 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

我这么说是因为当我尝试使用备份数据的主机上使用的密码登录时,它显示密码错误

我哪里做错了?

docker grafana restore volume
1个回答
0
投票

所以,事实证明,要备份和恢复您需要的 docker 卷

# check `docker volume ls´ for volume names
source_volume=name_of_your_source_volume 

backup_date=$(date +"%Y%m%d")
docker run --tty --rm --interactive --volume ${source_volume}:/source --volume ${PWD}/archive:/backup  alpine tar czvf /backup/${source_volume}_${backup_date}.tar.gz -C /source .

并像这样恢复它们:

target_volume=name_of_your_target_volume
restore_archive=${volume}_${backup_date}.tar.gz # of course the real name without placeholders

docker run --tty --rm --interactive --volume ${target_volume}:/target --volume ${PWD}/archive:/backup  alpine tar xzvf /backup/${restore_archive} -C /target

恢复时,tar.gz 必须位于

/archive/
文件夹中

© www.soinside.com 2019 - 2024. All rights reserved.