We provide precompiled binaries for most official Prometheus components. Check out the download section for a list of all available versions.
For building Prometheus components from source, see the
Makefile targets in
the respective repository.
Running Prometheus on Docker is as simple as
docker run -p 9090:9090
prom/prometheus. This starts Prometheus with a sample
configuration and exposes it on port 9090.
The Prometheus image uses a volume to store the actual metrics. For production deployments it is highly recommended to use a named volume to ease managing the data on Prometheus upgrades.
To provide your own configuration, there are several options. Here are two examples.
prometheus.yml from the host by running:
docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Or bind-mount the directory containing
/etc/prometheus by running:
docker run \ -p 9090:9090 \ -v /path/to/config:/etc/prometheus \ prom/prometheus
To avoid managing a file on the host and bind-mount it, the configuration can be baked into the image. This works well if the configuration itself is rather static and the same across all environments.
For this, create a new directory with a Prometheus configuration and a
Dockerfile like this:
FROM prom/prometheus ADD prometheus.yml /etc/prometheus/
Now build and run it:
docker build -t my-prometheus . docker run -p 9090:9090 my-prometheus
A more advanced option is to render the configuration dynamically on start with some tooling or even have a daemon update it periodically.
If you prefer using configuration management systems you might be interested in the following third-party contributions:
This documentation is open-source. Please help improve it by filing issues or pull requests.