【问题标题】:Recover configuration of Grafana-docker persistent volume?恢复 Grafana-docker 持久卷的配置?
【发布时间】:2018-01-25 13:54:54
【问题描述】:

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

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

我正在检查文档并尝试命令,但没有结果,我正在寻找答案,但在这种情况下我无法准确找到如何恢复配置。 我如何启动它来恢复旧卷,那么,所有的配置、仪表板等? 另外:如果可能的话,也有人可以链接到我的正确指南来阅读和理解这个吗?

提前,非常感谢。

【问题讨论】:

    标签: docker grafana docker-volume


    【解决方案1】:

    我会推荐以下解决方案:

    $ 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 是一种“旧”方法,以“更丑陋”的方式实现相同目标。

    此命令将在/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
    

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 目录/opt/grafana也需要可写,所以确保uid 472(当前grafana UID)有写权限。
      • 关于你的主机问题:groupadd grafana -g 472 ; useradd grafana -u 472 -g grafana ; chmod 770 /opt/grafana ; chown grafana.grafana /opt/grafana
      • 感谢@colminator 为他人分享重要步骤
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 2021-12-28
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      相关资源
      最近更新 更多