恢复 Grafana-docker 持久卷的配置?

Recover configuration of Grafana-docker persistent volume?

我按照 their GitHub 中所述进行了 Grafana-docker 持久存储部署,以便为我的公司进行测试。 我完全按照他们说的做了(我粘贴)并且有效:

# create /var/lib/grafana as persistent volume storage
docker run -d -v /var/lib/grafana --name grafana-storage busybox:latest

# start grafana
docker run \
  -d \
  -p 3000:3000 \
  --name=grafana \
  --volumes-from grafana-storage \
  grafana/grafana

问题:如果我重新启动它运行的服务器,"I"会丢失所有配置,我的意思是,我找不到如何以相同的体积启动它(我确定它在那里,但我找不到重新启动图像的方法)。 我也做了一个 docker volume ls 并且输出很难理解

我正在查看文档并尝试命令,但没有结果,我正在寻找答案,但我找不到在这种情况下如何恢复配置的确切方法。 我如何启动它来恢复旧卷,所有配置、仪表板等? 另外:如果可能的话,有人 link 可以给我阅读和理解这篇文章的正确指南吗?

提前,非常感谢。

我推荐以下解决方案:

$ docker volume create grafana-storage
grafana-storage

$ docker volume ls
DRIVER              VOLUME NAME              
local               grafana-storage

这是在 UNIX 上的 /var/lib/docker/volumes/grafana-storage 中创建的。 然后你可以启动你的 grafana 容器并将 /var/lib/grafana 的内容(从你的容器内部)挂载到 grafana-storage 这是一个命名的 docker 卷。

启动你的容器

docker run -d -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana

当您以 root 身份访问 /var/lib/docker/volumes/grafana-storage/_data 时,您可以看到您的内容。您可以重复使用此内容(删除您的 grafana 容器:docker rm -f xxx)并启动一个新容器。再次使用 -v grafana-storage:/var/lib/grafana.

--volumes-from 是一种 "old" 方法,以 'more ugly' 的方式实现同​​样的效果。

此命令将在 /var/lib/docker/volumes:

中创建一个空卷
$ docker run -d -v /var/lib/grafana --name grafana-storage busybox:latest

空存储在这里:

cd /var/lib/docker/volumes/6178f4831281df02b7cb851cb32d8025c20029f3015e9135468a374d13386c21/_data/

您启动了您的 grafana 容器:

docker run -d -p 3000:3000 --name=grafana --volumes-from grafana-storage grafana/grafana

容器内 /var/lib/grafana 的存储将存储在您由 busybox 容器创建的 /var/lib/docker/volumes/6178f4831281df02b7cb851cb32d8025c20029f3015e9135468a374d13386c21/_data/ 内。如果删除 grafana 容器,数据将保留在那里。

# cd /var/lib/docker/volumes/6178f4831281df02b7cb851cb32d8025c20029f3015e9135468a374d13386c21/_data/
# ls
grafana.db  plugins

我会非常简单地使用主机文件夹而不是使用任何类型的命名或未命名卷

docker run \
  -d \
  -p 3000:3000 \
  --name=grafana \
  -v /opt/grafana:/var/lib/grafana \
  grafana/grafana

这样做是将容器目录“/var/lib/grafana/”映射到 docker 服务器上的目录“/opt/grafana”(根据您的需要进行更改) .

Docker 当我们需要使用 compose 或 swarm 部署为多个容器提供服务时,卷很好。在你的情况下,事情可以保持简单。