啟動 grafana, prometheus, alertmanager 服務 --- ## [grafana](https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/) 官網 #### 啟動最新穩定版 ```bash docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise ``` #### use docker volumes (使用 Docker 卷) ```bash # start grafana docker run -d -p 3000:3000 --name=grafana \ --volume grafana-storage:/var/lib/grafana \ grafana/grafana-enterprise ``` ## [docker container run 從映像建立並運行新容器](https://docs.docker.com/reference/cli/docker/container/run/) ### Options #### -d, --detach 背景運行容器並列印容器 ID #### -p, --publish 將容器的連接埠發佈到主機 :左邊 主機的連接埠 :右邊 容器的連接埠 #### --name 指定容器名稱 #### -v, --volume 綁定掛載卷 ## grafana 登入畫面  使用 docker compose --- ```yaml version: "3.8" services: grafana: image: grafana/grafana-enterprise container_name: grafana restart: unless-stopped ports: - '3000:3000' ``` ## [The Compose Specification](https://github.com/compose-spec/compose-spec/blob/master/spec.md) ### services 是 compose 頂級元素 ### grafana 服務名稱, image, container_name, restart, ports 皆為服務容器的配置 ### [image](https://github.com/compose-spec/compose-spec/blob/master/05-services.md#image) 指定啟動容器的鏡像。鏡像必須遵循開放容器規範[可尋址鏡像格式](https://github.com/opencontainers/.github/blob/main/docs/docs/introduction/digests.md),如[\<registry\>/][\<project\>/]\<image\>[:\<tag\>|@\<digest>] ### [container_name](https://github.com/compose-spec/compose-spec/blob/master/05-services.md#container_name) 指定自訂容器名稱,而不是預設產生的名稱。 ### [restart](https://github.com/compose-spec/compose-spec/blob/master/05-services.md#restart) no:預設重啟策略。在任何情況下它都不會重新啟動容器。 always:該策略始終重新啟動容器,直到將其刪除。 on-failure:如果退出程式碼指示錯誤,則該策略將重新啟動容器。 unless-stopped:無論退出程式碼為何,該策略都會重新啟動容器,但在服務停止或刪除時停止重新啟動。 ### [ports](https://github.com/compose-spec/compose-spec/blob/master/05-services.md#ports) 暴露容器連接埠 :::danger 連接埠映射不得與 network_mode: host 一起使用,否則會發生執行階段錯誤。 ::: :::info [HOST]:[CONTAINER] 應始終指定為(帶引號的)字串,以避免與 [yaml base-60 float](https://yaml.org/type/float.html) 發生衝突 ::: ### example ```yaml ports: - "3000" - "3000-3005" - "8000:8000" - "9090-9091:8080-8081" - "49100:22" - "8000-9000:80" - "127.0.0.1:8001:8001" - "127.0.0.1:5000-5010:5000-5010" - "6060:6060/udp" ``` :::info 如果容器引擎不支援主機 IP 映射,Compose 會拒絕 Compose 檔案並忽略指定的主機 IP。 ::: ## [docker compose up](https://docs.docker.com/reference/cli/docker/compose/up/) ```bash # start the grafana container docker compose up -d ``` ### options #### -d, --detach 分離模式:在背景運行容器 #### [Version top-level element (obsolete)](https://docs.docker.com/compose/compose-file/04-version-and-name/#version-top-level-element-obsolete) :::warning **docker compose 已實現向下相容,不再需要於 yaml 加上 version: "3.8" 如果使用,會警告訊息,表明它已過時。** ::: ## [prometheus.io](https://prometheus.io/docs/prometheus/latest/installation/#volumes-bind-mount) 官方文件 ```bash docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus ``` :::info /path/to 請自行修改 綁定掛載卷 volumes 路徑 ::: ## prometheus 畫面  ## 連同 grafana、prometheus 一起啟動服務 ```yaml services: prometheus: image: prom/prometheus name: prometheus container_name: prometheus ports: - 9090:9090 restart: unless-stopped volumes: - prom_data:/prometheus grafana: image: grafana/grafana name: grafana container_name: grafana ports: - 3000:3000 restart: unless-stopped volumes: prom_data: ``` ## 其他範例 #### [awesome-compose](https://github.com/docker/awesome-compose/blob/master/prometheus-grafana/compose.yaml) ## 啟動 alermanager ```bash docker run --name alertmanager -d -p 127.0.0.1:9093:9093 quay.io/prometheus/alertmanager ``` ## 再把 alertmanager 加入 yaml 啟動所有服務 ```bash services: prometheus: image: prom/prometheus container_name: prometheus ports: - 9090:9090 restart: unless-stopped volumes: - prom_data:/prometheus grafana: image: grafana/grafana container_name: grafana ports: - 3000:3000 restart: unless-stopped alertmanager: image: quay.io/prometheus/alertmanager container_name: alertmanager ports: - 9093:9093 restart: unless-stopped volumes: prom_data: ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up