如何将运行在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
有一个将此信息添加到官方目录的请求安装文档: