Docker学习笔记—day013

Docker学习笔记---day013

文章目录

一、Docker轻量级可视化工具Portainer

Portainer官网是Docker镜像容器的一个轻量级可视化管理工具

1. 安装命令:

powershell 复制代码
# --restrat: 当docker重启的时候,portainer也会重启(进一步保证同时在线)
# 将宿主机的Docker守护进程套接字挂载到容器内,使Portainer能够与宿主机的Docker引擎通信
# 	端口映射。将宿主机的8000和9000端口分别映射到容器的相同端口。9000端口是Web UI的主要访问端口
# 创建命名卷portainer_data并挂载到容器的/data路径,用于持久化保存Portainer的配置数据
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 

2. 第一次登录需要创建admin,访问地址:ip+9000端口号

powershell 复制代码
# 我的访问地址  linux系统的IP192.168.17.131  +  端口号
http://192.168.17.131:9000/

3. 设置admin用户和密码后首次登陆

4、选择local选项卡后本地docker详细信息展示

其实质就是对应的命令:

powershell 复制代码
docker system df

5、常用操作

进入容器内部的bash进行操作(有时候因为版本问题进不去命令界面--参考

使用界面进行拉取镜像并实例化容器

二、Docker容器监控之CAdvisor+InFluxDb+Granfana (重量级)

Cadvisor 监控收集 + InfluxDB 存储数据 + Grantfana展示图标

查看各容器实例的资源占用状态:

powershell 复制代码
docker stats


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

2.1、CAdvisor

CAdvisor功能主要有两点: 展示Host和容器两个层面的监控数据、展示历史变化数据

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

2.2、InFluxDB

InfluxDB是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。

CAdvisor默认只在本机保存最近2分钟的数据 ,为了持久化存储数据和统一收集展示监控数据 ,需要将数据存储到InfluxDB中。InfluxDB是一个时序数据库专门用于存储时序相关数据 ,很适合存储CAdvisor的数据。而且,CAdvisor本身已经提供了InfluxDB的集成方法,在启动容器时指定配置即可

2.3、Granfana

Grafana​ 是一个强大的数据可视化与分析平台,可以从包括 InfluxDB 在内的多种数据源读取数据,并生成图表、仪表盘。

2.4、CAdvisor+InFluxDb+Granfana结合Compose一键搭建监控平台

  1. 新建目录:mkdir cig
  2. 新建3件套组合的docker-compse.yml文件
powershell 复制代码
# 编写yml文件
vi docker-compose.yml
# 编写好后检查语法是否正确
docker-compose config -q

具体的yml文件

yml 复制代码
version: "3.1"  # 指定Docker Compose文件格式版本

volumes:
  grafana_data: {}

services:
  influxdb:
    image: tutum/influxdb:0.9
    restart: always
    ports:
      - "8003:8003"   # 对外暴露的web端口
      - "8086:8086"
    volumes:
      - ./data/influxdb:/data  # 数据卷挂载:将主机目录挂载到容器

  cadvisor:
    image: google/cadvisor
    links:
      - influxdb:influxsrc
    command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_drive                                                                                 r_host=influxrv:8086
    restart: always
    ports:
      - "8080:8080"  # Redis默认端口映射
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro

  grafana:
    user: "104"
    image: grafana/grafana
    user: "104"
    restart: always
    links:
      - influxdb:influxsrv
    ports:
      - "3000:3000"  # MySQL默认端口映射
    volumes:
      - /grafana_data:/var/lib/grafana
    environment:
      - HTTP_USER=admin
      - HTTP_PASS=admin
      - INFLUXDB_HOST=influxsrv
      - INFLUXDB_PORT=8086
  1. 启动docker-compose文件
powershell 复制代码
# 拉取镜像
docker pull tutum/influxdb
docker pull grafana/grafana
docker pull google/cadvisor
# 启动yml文件
docker-compose up
  1. 查看三个服务容器是否启动成功

    注意:每次启动后修改yml文件后需要清理,再重新启动
powershell 复制代码
docker-compose down
docker-compose up -d
  1. 测试

浏览CAdvisor收集服务:http://ip:8080

浏览influxdb存储服务:http://ip:8083

浏览grafana展现服务:http://ip:3000

2.4、CAdvisor+InFluxDb+Granfana监控详细配置

2.4.1、浏览grafana展现服务并配置
  1. 配置数据源

    配置调用数据库服务
    在grafana中配置InfluxDB连接信息

    在grafana中配置新面板




新建一个查询

查询结果分析

注:本次只是对本机的docker进行的一个管理,但如果对远程服务器的docker进行管理了,就得使用k8s了。

相关推荐
PNP Robotics2 小时前
聚焦具身智能,PNP机器人展出力反馈遥操作,VR动作捕捉等方案,获得中国科研贡献奖
大数据·人工智能·python·学习·机器人
Vincent_Zhang2332 小时前
专题:所有宾语类型(持续补充)
笔记
黑客思维者2 小时前
机器学习016:监督学习【分类算法】(支持向量机)-- “分类大师”入门指南
人工智能·学习·机器学习·支持向量机·分类·回归·监督学习
我的golang之路果然有问题2 小时前
win键盘设置改为类似mac 配置
windows·笔记·macos·计算机外设·键盘
xiaobuding_QAQ2 小时前
51汇编仿真proteus8.15学习篇一(附源码)
汇编·单片机·学习·proteus
乐茵lin2 小时前
golang中 Context的四大用法
开发语言·后端·学习·golang·编程·大学生·context
YJlio2 小时前
2025 我用 Sysinternals 打通 Windows 排障“证据链”:开机慢 / 安装失败 / 磁盘暴涨(三个真实案例复盘)
人工智能·windows·笔记
山土成旧客2 小时前
【Python学习打卡-Day26】函数的艺术(上):从基础定义到参数魔法
开发语言·python·学习
车载测试工程师2 小时前
CAPL学习-AVB交互层-媒体函数1-回调&基本函数
网络·学习·tcp/ip·媒体·capl·canoe