Docker Compose 完整配置

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: Docker Compose 完整配置

docker-compose.yaml

下载:docker-compose.yaml

version: '3.8'
services:
  grafana:
    image: grafana/grafana:9.3.1
    container_name: grafana
    hostname: grafana
    restart: always
    ports:
      - '9000:3000'
    volumes:
      - grafana-data:/var/lib/grafana
      - /etc/localtime:/etc/localtime:ro
  prometheus:
    image: prom/prometheus:v2.40.2
    container_name: prometheus
    hostname: prometheus
    restart: always
    ports:
      - '9090:9090'
    volumes:
      - prometheus-data:/etc/prometheus
      - /etc/localtime:/etc/localtime:ro
  node_exporter:
    # image: quay.io/prometheus/node-exporter:latest
    image: prom/node-exporter:v1.4.0
    container_name: node_exporter
    hostname: node_exporter
    restart: always
    network_mode: host
    pid: host
    command:
      - '--path.rootfs=/host'
    volumes:
      - '/:/host:ro,rslave'
      - /etc/localtime:/etc/localtime:ro
  alertmanager:
    image: prom/alertmanager:v0.24.0
    container_name: alertmanager
    hostname: alertmanager
    restart: always
    ports:
      - '9093:9093'
    volumes:
      - alertmanager-data:/etc/alertmanager
      - /etc/localtime:/etc/localtime:ro
volumes:
  grafana-data:
  prometheus-data:
  alertmanager-data:点击复制复制失败已复制


Tip

node_exporter 占用 9100 端口,使用 host 网络,因此处于容器网络中的 prometheusgrafana 是不能通过 hostname 来访问的,需要通过网关ip 来访问,使用 $ docker inspect prometheus 命令来查看网关ip


Prometheus 配置

接下来配置 prometheus ,首先通过命令: $ docker volume ls 命令找到volume具名挂在的名称,如下所示:

$ docker volume ls
DRIVER    VOLUME NAME
local     d927b4b286e87a17f4e66d0a840a72f2b6c8403d370313526b1618a94bc864fd
local     monitor_alertmanager-data
local     monitor_grafana-data
local     monitor_prometheus-data点击复制复制失败已复制


这样就知道 monitor_prometheus-data 就是 prometheus 容器挂载的了,接下来通过 $ docker volume inspect monitor_prometheus-data 命令拿到存储地址:

$ docker volume inspect monitor_prometheus-data
[
    {
        "CreatedAt": "2021-12-11T21:46:35+08:00",
        "Driver": "local",
        "Labels": {
            "com.docker.compose.project": "monitor",
            "com.docker.compose.version": "1.29.2",
            "com.docker.compose.volume": "prometheus-data"
        },
        "Mountpoint": "/var/lib/docker/volumes/monitor_prometheus-data/_data",
        "Name": "monitor_prometheus-data",
        "Options": null,
        "Scope": "local"
    }
]点击复制复制失败已复制


Mountpoint 字段可以知道,这个卷的实际位置在 /var/lib/docker/volumes/monitor_prometheus-data/_data 路径下,接下来编辑 prometheus.yml 文件,写配置即可。

$ sudo vim /var/lib/docker/volumes/monitor_prometheus-data/_data/prometheus.yml点击复制复制失败已复制


配置示例:

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets: ["alertmanager:9093"]
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ["localhost:9090"]
        labels:
          instance: "prometheus"
  - job_name: "linux"
    static_configs:
      - targets: ["192.168.0.1:9100"]   # 注意这里写的是网关的ip
        labels:
          instance: "本机"
  - job_name: "grafana"
    static_configs:
      - targets: ["grafana:3000"]
        labels:
          instance: "grafana"
  - job_name: "外部服务器"
    scheme: https
    basic_auth:
      username: prometheus
      password: basic auth密码
    static_configs:
      - targets: ["外部服务域名"]
        labels:
          instance: "外部服务器"
目录
相关文章
|
3月前
|
人工智能 前端开发 Docker
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
在 AI 智能体开发中,开发者常面临本地调试与云端部署的矛盾。本文介绍如何通过 Docker Compose 与 Docker Offload 解决这一难题,实现从本地快速迭代到云端高效扩容的全流程。内容涵盖多服务协同、容器化配置、GPU 支持及实战案例,助你构建高效、一致的 AI 智能体开发环境。
359 2
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
kde
|
5月前
|
Kubernetes 关系型数据库 文件存储
手把手教你完成极空间 NAS Docker 镜像加速配置
本教程详细介绍了如何在极空间NAS上配置轩辕镜像加速器,以提升Docker镜像的下载速度与稳定性。内容涵盖账号注册、网络确认、加速器设置及验证方法,并提供常见问题解决方案,帮助用户高效完成容器化应用部署。
kde
1830 1
|
3月前
|
运维 数据可视化 开发者
2025年 三个 Docker Compose 可视化管理器测评
本文对比了三款主流的 Docker Compose 可视化管理工具。随着 Docker 的普及,Compose 已成为多容器应用部署的标准,但 YAML 配置复杂、协作困难等问题也日益突出。三款工具各有侧重:Docker Desktop 适合个人本地开发,Portainer 适合小团队运维管理,而 Websoft9 则通过 GitOps 实现了强大的版本控制与团队协作能力。文章从可视化编辑、部署便捷性、版本管理等方面进行评测,为不同使用场景提供了推荐方案,展望了未来 Compose 管理向 GitOps 深度融合的发展趋势。
439 1
2025年 三个 Docker Compose 可视化管理器测评
kde
|
5月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
kde
3323 59
kde
|
Docker 容器 文件存储
飞牛fnOS Docker镜像加速配置全攻略
本文介绍了如何在飞牛fnOS中配置Docker镜像加速服务,通过设置轩辕镜像仓库加速器,提升镜像拉取速度与稳定性。内容涵盖配置前准备、加速源设置、首选加速源调整及使用指南,帮助用户高效完成镜像操作。
kde
2323 56
|
数据可视化 开发工具 git
GitOps 驱动的 Docker Compose 可视工具化来了,图形化编辑器上玩转容器编排
Docker Compose 简化了多容器应用的部署,但随着应用复杂度上升,文本配置方式逐渐暴露出维护难、协作效率低等问题。基于 GitOps 的可视化 Docker Compose 工具应运而生,通过图形界面降低使用门槛,提升配置准确性和团队协作效率。结合 GitOps,实现配置变更的版本追踪、自动化部署与环境一致性,为多容器应用管理提供高效、安全的解决方案。
|
5月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
473 11
|
5月前
|
NoSQL 安全 Redis
Docker Compose :从入门到企业级部署
Docker Compose 是用于定义和运行多容器应用的工具,支持服务、网络和卷三大核心要素。通过简洁的 YAML 文件,可实现应用的快速部署与管理,适用于开发、测试及生产环境。
417 1
|
5月前
|
Java 分布式数据库 Docker
使用Docker配置并连接HBase的Java API
本流程概要的解释了如何在Docker上配置并启动HBase服务,并通过Java API进行连接和操作表,不涉及具体的业务逻辑处理和数据模型设计,这些因应用而异需由开发者根据实际需求进行实现。
268 13