第一部分——Docker篇 第六章 容器监控

关于系统的改造探索

开篇:系统改造的调研报告

第一部分------Docker篇

第一章 Docker容器
第二章 Docker安装
第三章 构建自定义镜像
第四章 搭建镜像仓库
第五章 容器编排
第六章 容器监控


文章目录


前言

随着业务的发展,传统的架构已经不符合项目的要求了。双活、集群也渐渐提上了日程。。。


最后一部分内容是关于 容器监控 的,用Docker 启动好各个应用后,还需要对各个应用进行监控,如果哪台服务挂了,方便定位重启

Portainer

官方介绍

是一个针对容器化应用程序的轻量级服务交付平台,可用于管理 Docker、Swarm、Kubernetes 和 ACI 环境。它的设计理念是部署和使用都简单。该应用程序允许您通过"智能"GUI 和/或广泛的 API 管理所有编排器资源(容器、图像、卷、网络等)

巴拉巴拉,只要记住是轻量级的容器管理平台就行了。Portainer 分为社区版(CE)和商业版(BE),当然,这里用的是社区版。有了Docker 部署就很方便:

bash 复制代码
#创建数据卷
docker volume create portainer_data

#安装中文版
docker run -d -p 9000:9000 --name=portainer  -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data outlovecn/portainer-cn

再添加 Docker 服务之前,被监听的 Docker 需要开启 2375 端口

json 复制代码
{
  "registry-mirrors": ["加速地址"],
  //这里配置是让docker信任该地址,否则会提示https安全问题
  "insecure-registries":["harbor-ip:8080","nexus-ip:8082","registry-ip:5000"]
  "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}

Portainer 有多种监听方式,这里只演示 Docker API的方式

根据实际情况填写IP

首页就可以看到对应的 Docker 环境

CIG

既然存在轻量级,那必然就有重量级。接下来就来看下 CIGCIG 实际上是由三个组件组成:CAdvisorInfluxDBGrafana

  • CAdvisor
    CAdvisor 是由 Google 开源的一个用于监控容器资源使用情况的工具。它能够实时收集 Docker容器 的 CPU 使用率、内存使用量、磁盘 I/O、网络流量 等指标,并将这些数据暴露为 Prometheus格式的监控端点

  • InfluxDB
    InfluxDB 是一个开源的时序数据库,专门设计用于处理时间序列数据。在 CIG 监控系统中,InfluxDB 用于存储由 CAdvisor 收集的容器监控数据

  • Grafana
    Grafana 是一个开源的数据可视化工具,用于创建、查看和共享监控仪表盘。在 CIG 监控系统中,GrafanaInfluxDB 集成,可以直接从 InfluxDB 中查询容器监控数据,并通过可视化方式展示在用户界面上

编写cig.yml如下:

yaml 复制代码
version: '2'
services:
 influxdb:
  image: tutum/influxdb:0.9
  container_name: influxdb
  environment:
    - PRE_CREATE_DB=cadvisor
  ports:
    - "8083:8083"
    - "8086:8086"
 
 cadvisor:
  image: google/cadvisor
  container_name: cadvisor
  links:
    - influxdb:influxsrv
  command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086
  ports:
    - "8080:8080"
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
 
 grafana:
  image: grafana/grafana
  container_name: grafana
  links:
    - influxdb:influxsrv
  ports:
    - "3000:3000"
   
  environment:
    - HTTP_USER=admin
    - HTTP_PASS=admin
    - INFLUXDB_HOST=influxsrv
    - INFLUXDB_PORT=8086
    - INFLUXDB_NAME=cadvisor
    - INFLUXDB_USER=root
    - INFLUXDB_PASS=root
bash 复制代码
#启动cig
docker-compose -f cig.yml up -d

访问http://192.168.233.135:8083/,查看是否创建 cadvisor 数据库。如下:

访问http://192.168.233.135:8080/containers/,查看 CAdvisor 自带的页面,如下:

访问http://192.168.233.135:3000/,用户名密码默认为 admin ,配置下 Grafana 折线图,如下:

总结

Docker 整体来说,提高了部署效率,特别是多环境下,可以屏蔽环境之间的差异,可以快速部署。但是 Docker 本身也存在权限问题,编排问题,在用的过程中被整的很难受。当然,上边都是个人在使用 Docker 时候的体验和理解,如果存在问题,欢迎大家指出

到此为止,整个 Docker 篇就到此结束了,后面将开启新的篇章------Kubernetes,这个提供了更加完整的解决方案,对于实现自动化运维有不少的帮助

相关推荐
小陈工3 分钟前
2026年3月28日技术资讯洞察:5G-A边缘计算落地、低延迟AI推理革命与工业智造新范式
开发语言·人工智能·后端·python·5g·安全·边缘计算
openFuyao6 分钟前
openFuyao亮相KubeCon Europe 2026 携InferNex套件深耕AI云原生推理领域
人工智能·云原生
azhou的代码园1 小时前
基于SpringBoot+微信小程序的图片识别科普系统
spring boot·后端·微信小程序
寒秋花开曾相惜1 小时前
(学习笔记)3.8 指针运算(3.8.3 嵌套的数组& 3.8.4 定长数组)
java·开发语言·笔记·学习·算法
想唱rap1 小时前
Linux线程
java·linux·运维·服务器·开发语言·mysql
JFSJFX1 小时前
手机短信误删怎么办?这4种恢复办法亲测有效,轻松找回短信
运维·服务器
Tony Bai1 小时前
Rust 看了流泪,AI 看了沉默:扒开 Go 泛型最让你抓狂的“残疾”类型推断
开发语言·人工智能·后端·golang·rust
用户3167361303421 小时前
javaLangchain4j从官方文档入手,看他做了什么——具体使用(二)
后端
yuzhuanhei1 小时前
docker常用命令
运维·docker·容器
無名路人1 小时前
Zsh 脚本 + VS Code 任务:NestJS + Vue3 一键部署到 1Panel
运维·后端·自动化运维