Repository: prometheus/prometheus (language: go)

Issue:
Retention size flag affects expected config file location
### What did you do?

This works as expected:
```
$ docker run --network=host \
    -p 9090:9090 \
    -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus
...
ts=2023-03-08T00:39:38.453Z caller=main.go:978 level=info msg="Server is ready to receive web requests."
```

But adding the `--storage.tsdb.retention.size` flag and changing nothing else causes prometheus to no longer start:

```
$ docker run --network=host \
    -p 9090:9090 \
    -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus --storage.tsdb.retention.size=1GB
```

### What did you expect to see?

I expected prometheus to run just like the first command, but now with a retention size set.

### What did you see instead? Under which circumstances?

When I add `--storage.tsdb.retention.size=1GB`, prometheus can't find the configs any more:
```
$ docker run --network=host \
    -p 9090:9090 \
    -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus \
    --storage.tsdb.retention.size=1GB 
WARNING: Published ports are discarded when using host network mode
ts=2023-03-08T00:40:53.052Z caller=main.go:468 level=error msg="Error loading config (--config.file=prometheus.yml)" file=/prometheus/prometheus.yml err="open prometheus.yml: no such file or directory"
```

This can be fixed by explicitly setting the config file location, but that's unexpected:
```
$ docker run --network=host \
    -p 9090:9090 \
    -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus --storage.tsdb.retention.size=1GB --config.file=/etc/prometheus/prometheus.yml
```

### System information

Linux 6.1.12 x86_64

### Prometheus version

```text
version=2.42.0, branch=HEAD, revision=225c61122d88b01d1f0eaaee0e05b6f3e0567ac0
```


### Prometheus configuration file

```yaml
global:
  scrape_interval: 15s
  external_labels:
    monitor: 'tamarack-monitoring'
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'tamarack-api'
    metrics_path: "/actuator/prometheus"
    static_configs:
      - targets: ['localhost:8081']
```


### Alertmanager version

```text
N/A
```


### Alertmanager configuration file

```yaml
N/A
```


### Logs

```text
N/A
```



Discussion / hints:
We have a default `CMD` in the Dockerfile that sets a number of flags. When a user includes their own `CMD` in their Docker run command, as you did with the `--storage.tsdb.retention.size` flag, this overrides the defaults that we set in the Dockerfile.

In terms of solutions, we could consider one of the following options:

1. Document the potential conflict between the `CMD` flags in the Dockerfile and the user-defined `CMD` flags in the README or documentation.

2. Consider adding a script to the Docker container that runs as an entrypoint and dynamically sets the necessary flags based on the arguments that the user provides when starting the container. _This would be a breaking change and we would need to think about other situations like how users could *not* have a value for such a pre-defined flag._

Option 2 might provide the most seamless experience for users (*but it would be breaking for many*) as they could pass arguments as they normally would to `prometheus` and rely on the entrypoint script to handle the necessary flag configuration. 

Since it is breaking, I suggest we go with option 1.

Fix patch:
diff --git a/docs/installation.md b/docs/installation.md
index 28f64c0f959..c8e359e7809 100644
--- a/docs/installation.md
+++ b/docs/installation.md
@@ -31,11 +31,19 @@ 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.
+### Setting command line parameters
+
+The Docker image is started with a number of default command line parameters, which
+can be found in the [Dockerfile](https://github.com/prometheus/prometheus/blob/main/Dockerfile) (adjust the link to correspond with the version in use).
+
+If you want to add extra command line parameters to the `docker run` command,
+you will need to re-add these yourself as they will be overwritten.
 
 ### Volumes & bind-mount
 
+To provide your own configuration, there are several options. Here are
+two examples.
+
 Bind-mount your `prometheus.yml` from the host by running:
 
 ```bash


Test patch: