mirror of
				https://github.com/prometheus/prometheus.git
				synced 2025-11-03 18:01:18 +01:00 
			
		
		
		
	The documentation referenced "data volume containers", which were superseded by named volume support in Docker several years ago. There were to bind-mounting examples in the docs that are effectively doing the same thing, but the description of the second was somewhat erroneous. Signed-off-by: Lars Kellogg-Stedman <lars@redhat.com>
		
			
				
	
	
		
			103 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Installation
 | 
						|
sort_rank: 2
 | 
						|
---
 | 
						|
 | 
						|
# Installation
 | 
						|
 | 
						|
## Using pre-compiled binaries
 | 
						|
 | 
						|
We provide precompiled binaries for most official Prometheus components. Check
 | 
						|
out the [download section](https://prometheus.io/download) for a list of all
 | 
						|
available versions.
 | 
						|
 | 
						|
## From source
 | 
						|
 | 
						|
For building Prometheus components from source, see the `Makefile` targets in
 | 
						|
the respective repository.
 | 
						|
 | 
						|
## Using Docker
 | 
						|
 | 
						|
All Prometheus services are available as Docker images on
 | 
						|
[Quay.io](https://quay.io/repository/prometheus/prometheus) or
 | 
						|
[Docker Hub](https://hub.docker.com/r/prom/prometheus/).
 | 
						|
 | 
						|
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](https://docs.docker.com/storage/volumes/)
 | 
						|
to ease managing the data on Prometheus upgrades.
 | 
						|
 | 
						|
To provide your own configuration, there are several options. Here are
 | 
						|
two examples.
 | 
						|
 | 
						|
### Volumes & bind-mount
 | 
						|
 | 
						|
Bind-mount your `prometheus.yml` from the host by running:
 | 
						|
 | 
						|
```bash
 | 
						|
docker run \
 | 
						|
    -p 9090:9090 \
 | 
						|
    -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
 | 
						|
    prom/prometheus
 | 
						|
```
 | 
						|
 | 
						|
Or bind-mount the directory containing `prometheus.yml` onto
 | 
						|
`/etc/prometheus` by running:
 | 
						|
 | 
						|
```bash
 | 
						|
docker run \
 | 
						|
    -p 9090:9090 \
 | 
						|
    -v /path/to/config:/etc/prometheus \
 | 
						|
    prom/prometheus
 | 
						|
```
 | 
						|
 | 
						|
### Custom image
 | 
						|
 | 
						|
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:
 | 
						|
 | 
						|
```Dockerfile
 | 
						|
FROM prom/prometheus
 | 
						|
ADD prometheus.yml /etc/prometheus/
 | 
						|
```
 | 
						|
 | 
						|
Now build and run it:
 | 
						|
 | 
						|
```bash
 | 
						|
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.
 | 
						|
 | 
						|
## Using configuration management systems
 | 
						|
 | 
						|
If you prefer using configuration management systems you might be interested in
 | 
						|
the following third-party contributions:
 | 
						|
 | 
						|
### Ansible
 | 
						|
 | 
						|
* [Cloud Alchemy/ansible-prometheus](https://github.com/cloudalchemy/ansible-prometheus)
 | 
						|
 | 
						|
### Chef
 | 
						|
 | 
						|
* [rayrod2030/chef-prometheus](https://github.com/rayrod2030/chef-prometheus)
 | 
						|
 | 
						|
### Puppet
 | 
						|
 | 
						|
* [puppet/prometheus](https://forge.puppet.com/puppet/prometheus)
 | 
						|
 | 
						|
### SaltStack
 | 
						|
 | 
						|
* [saltstack-formulas/prometheus-formula](https://github.com/saltstack-formulas/prometheus-formula)
 |