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了。

相关推荐
Song_RsHt14 分钟前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
sbjdhjd34 分钟前
AI产业周度动态:从“更强模型”走向“可执行、可治理、可计价”的系统竞争 (2026年10月19日—10月25日)
人工智能·笔记·ai·开源·gemini·信息差·claude code
ss2732 小时前
AI时代首先数据库-PostgreSQL实战笔记 27 PostgreSQL数据写入与读取流程解析
数据库·笔记·postgresql
深圳老胡2 小时前
压力检测空吸功能硬件方案全解析:主流压力传感器品牌与实现路径
笔记·单片机·代码规范
程序猿追3 小时前
返回 null 不一定入队成功:鸿蒙 KMP上的并发优先队列观察笔记
笔记·华为·harmonyos·kmp
姜鱼问生3 小时前
网页一片白?Docker 跑 Nginx 读不到文件,403 Forbidden 排查实录
nginx·docker·容器
~kiss~3 小时前
PRO-LONG: Programmatic Memory Enables Long-Horizon Reasoning 程序式记忆赋能长程推理
学习
程序猿编码3 小时前
不依赖 vLLM/llama.cpp:一套面向学习的 DeepSeek-R1 CUDA 推理实现
c++·学习·语言模型·llama·vllm·大模型推理
崔高杰3 小时前
【多论文阅读笔记】下一阶段,Agent记忆关注什么能力?
论文阅读·笔记
ms72wx4 小时前
Docker 命令学习笔记:从入门到进阶的实战指南
笔记·学习·docker