web-dev-qa-db-ja.com

Dockerコンテナーで実行されているPrometheusでデータを永続化する方法は?

再起動間でデータを保持するために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コマンドには何が欠けていますか?

14
Matthew

/prometheusであるデフォルトのデータディレクトリを使用します。これを行うには、コマンドにあるものの代わりに次の行を使用します。

...
--volume a-new-volume:/prometheus \
...

ここにあります: https://github.com/prometheus/prometheus/blob/master/Dockerfile

驚くべきことに image docs では言及されていません

17
Robert