docker小白第十四天之Portainer与CIG

Portainer简介

Portainer是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。

Portainer命令安装

bash 复制代码
# 一个容器可以同时起多个-p端口,restart=always表示随时在线,重启机器后也自动重启
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data/ portainer/portainer
bash 复制代码
# 第一次登录需要修改账号密码,用户名默认admin
# 本地浏览器访问如下地址,其中ip换为自己host宿主机地址
192.168.0.5:9000/#/init/admin

输入自定义密码登录后界面

监测本地docker

左侧有很多菜单选项。例如镜像、网络、容器实例。

使用portainer安装nginx

最后输入容器名、要拉取的镜像名nginx,定义的容器端口,最后发布容器。

最后自动显示安装完成

docker容器监控之CIG

bash 复制代码
# 命令行界面查看docker状态
docker stats

通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能。

CIG的意义:CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表

CAdvisor

CAdvisor是一个容器资源监控工具包括容器的内存,CPU,网络IO,磁盘IO等监控,同时提供了一个WEB页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,而且只是针对单物理机。不过,CAdvisor提供了很多数据集成接口,支持InfluxDB,Redis,Kafka,Elasticsearch等集成,可以加上对应配置将监控数据发往这些数据库存储起来。

CAdvisor功能主要有两点:

  • 展示Host和容器两个层次的监控数据。
  • 展示历史变化数据。

InfluxDB

InfluxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。CAdvisor默认只在本机保存最近2分钟的数据,为了持久化存储数据和统一收集展示监控数据,需要将数据存储到InfluxDB中。InfluxDB是一个时序数据库,专门用于存储时序相关数据,很适合存储CAdvisor的数据。而且,CAdvisor本身已经提供了InfluxDB的集成方法,丰启动容器时指定配置即可。

lnfluxDB主要功能:

  • 基于时间序列,支持与时间有关的相关函数(如最大、最小、求和等)
  • 可度量性:你可以实时对大量数据进行计算;
  • 基于事件:它支持任意的事件数据;

Granfana

Grafana是一个开源的数据监控分析可视化平台,支持多种数据源配置(支持的数据源包括InfluxDB,MySQL,Elasticsearch,OpenTSDB,Graphite等)和丰富的插件及模板功能,支持图表权限控制和报警。

Grafan主要特性:

  • 灵活丰富的图形化选项。
  • 可以混合多种风格。
  • 支持白天和夜间模式。
  • 多个数据源

compose容器编排CIG监控

在mydocker下新建一个目录cig

bash 复制代码
# 编辑compose文件
vim docker-compose.yml
bash 复制代码
# compose文件内容
version: '3.1'
volumes:
  grafana_data: {}
services:
 influxdb:
  image: tutum/influxdb:0.9
  restart: always
  environment:
    - PRE_CREATE_DB=cadvisor
  ports:
    - "8083:8083"
    - "8086:8086"
  volumes:
    - ./data/influxdb:/data
 cadvisor:
  image: google/cadvisor
  links:
    - influxdb:influxsrv
  restart: always
  ports:
    - "8080:8080"
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
 grafana:
  user: "104"
  image: grafana/grafana
  restart: always
  links:
    - influxdb:influxsrv
  ports:
    - "3000:3000"
  volumes:
    - grafana_data:/var/lib/grafana
  environment:
    - HTTP_USER=admin
    - HTTP_PASS=admin
    - INFLUXDB_HOST=influxsrv
    - INFLUXDB_PORT=8086
    - INFLUXDB_NAME=cadvisor
    - INFLUXDB_USER=root
    - INFLUXDB_PASS=root
bash 复制代码
# 检查文件配置是否有误
docker-compose config -q
# 启动compose编排,前台运行,非后台守护进程。
docker-compose up
# 另起一个命令行窗口,查看已经运行的三个服务是否启动
docker ps

测试访问服务是否正常

本地浏览器访问如下网址:

bash 复制代码
# 第一次访问慢,需等待,cadvisor也有基础的图形展现功能。
http://192.168.0.5:8080/containers/
bash 复制代码
http://192.168.0.5:8083/#
bash 复制代码
# 账号密码admin,admin
http://192.168.0.5:3000/#

配置grafana展现服务

配置数据源

选择InfluxDB数据库。


输入compose.yml文件中新建的cadvisor数据库名字,用户名和密码分别为root

新建观察panel面板

可编辑监控选项,例如监控cpu

相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn862 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉2 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦2 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
2601_961875242 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant