Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将运行在Docker容器中的Prometheus中的数据持久化?_Docker_Persistence_Prometheus - Fatal编程技术网

如何将运行在Docker容器中的Prometheus中的数据持久化?

如何将运行在Docker容器中的Prometheus中的数据持久化?,docker,persistence,prometheus,Docker,Persistence,Prometheus,我正在开发一些东西,需要普罗米修斯在重启之间保存数据。遵照指示 $ docker volume create a-new-volume $ docker run \ --publish 9090:9090 \ --volume a-new-volume:/prometheus-data \ --volume "$(pwd)"/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus 我在主机的

我正在开发一些东西,需要普罗米修斯在重启之间保存数据。遵照指示

$ docker volume create a-new-volume
$ docker run \
    --publish 9090:9090 \
    --volume a-new-volume:/prometheus-data \
    --volume "$(pwd)"/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus
我在主机的正确目录中有一个有效的
prometheus.yml
,它正被prometheus从容器中读取。目前,我只是为了测试目的而删除了几个HTTP端点


但是当我重新启动容器时,它是空的,没有上一次运行的数据。我的
docker run…
命令将数据持久化到
a-new-volume
卷中缺少了什么?

使用默认的数据目录,即
/prometheus
。要做到这一点,请使用此行,而不是使用命令中的内容:

...
--volume a-new-volume:/prometheus \
...
可在此处找到:


令人惊讶的是,
/prometheus
不是正确的数据目录吗?是的!你的信息来源是什么?这里:当我这样做时,容器无法启动。我意识到这是因为主机上有目录的权限。为了省去某人计算权限的麻烦:如果您使用绑定挂载来挂载主机目录:
chown
文件夹到
nobody
。或者
chown 65534:65534
有一个将此信息添加到官方目录的请求安装文档: