笔记记录学习尚硅谷周阳老师的 docker 教程
链接地址: https://www.bilibili.com/video/BV1gr4y1U7CY?p=1

1. docker 轻量级可视化工具 Portainer

1.1 是什么

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

1.2 安装

1.2.1 官网

https://www.portainer.io/
https://docs.portainer.io/
https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux
https://docs.portainer.io/start/install/server/docker/linux

1.2.2 安装步骤

去dockerhub 找docker 安装命令
docker pull portainer/portainer-ce:2.13.0-alpine

[root@vm001 admin]# docker pull portainer/portainer-ce:2.13.0-alpine
2.13.0-alpine: Pulling from portainer/portainer-ce
df9b9388f04a: Pull complete 
df8362a36bd7: Pull complete 
Digest: sha256:18adcd23f746ded2f642a04153227423336aa22ad99880ef5e8265af243eeb79
Status: Downloaded newer image for portainer/portainer-ce:2.13.0-alpine
docker.io/portainer/portainer-ce:2.13.0-alpine
[root@vm001 admin]# docker images
REPOSITORY                                                    TAG             IMAGE ID       CREATED         SIZE
portainer/portainer-ce                                        2.13.0-alpine   f7bebd33b1c4   11 days ago     282MB

1.2.3 启动运行

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-ce:2.13.0-alpine

1.2.4 登录

URL: http://192.168.226.128:9000/
第一次登录需要设置账号密码,账号默认是admin(也可以改)
在这里插入图片描述
之后登进初始界面,选择 ‘Get Started’,
会进去到home页面:http://192.168.226.128:9000/#!/home
点击 ‘Local’ 则可以到达 Dashboard界面
在这里插入图片描述
上面的图形,对应的命令行?

[root@vm001 admin]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          22        13        6.552GB   1.898GB (28%)
Containers      22        4         293.7MB   293.6MB (99%)
Local Volumes   32        8         1.981GB   1.185GB (59%)
Build Cache     0         0         0B        0B

1.2.5 各个功能点如下

就是把命令行操作转换成为图形界面操作
在这里插入图片描述

2. Docker容器监控CAdvisor+InfluxDB+Grafana

2.1 容器监控原生命令

docker stats

CONTAINER ID   NAME                 CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O        PIDS
c0f5ce3804be   portainer            0.06%     11.88MiB / 4.667GiB   0.25%     2.8kB / 0B       84.2MB / 655kB   4
b014f0b061b4   suspicious_keldysh   0.00%     8.477MiB / 4.667GiB   0.18%     2.8kB / 0B       42.1MB / 0B      5
f27be7bd716a   consul               0.15%     21.1MiB / 4.667GiB    0.44%     9.4kB / 1.17kB   164MB / 1.4MB    9
e2ddfc2abe31   zk01                 0.66%     67.35MiB / 4.667GiB   1.41%     3.01kB / 0B      187MB / 8.19kB   30

通过docker stats命令可以很方便的看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,一般小公司够用了。。。。

但是,docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的,没有地方存储、没有健康指标过线预警等功能

2.2 容器监控3剑客

CAdvisor监控收集+InfluxDB存储数据+Granfana展示图表
在这里插入图片描述

2.2.1 CAdvisor

在这里插入图片描述

2.2.2 InfluxDB

InfluxDB 1.x 和 2.x 差别很大
当下 CAdvisor只支持 InfluxDB 1.x 所以本例使用 1.x
在这里插入图片描述

2.2.3 Grafana

在这里插入图片描述

2.2.4 小总结

在这里插入图片描述

2.3 CIG 各自启动

参考:https://www.isolves.com/it/cxkf/rongqi/2022-03-11/51054.html

2.3.0 network

docker network create cig_network

2.3.1 InfluxDB(位于监控主机)

这里预先定义了创建一个初始数据库:

INFLUXDB_DB=cadvisor # 初始数据库名称
INFLUXDB_USER=root # 初始数据库用户名
INFLUXDB_USER_PASSWORD=root123456 # 初始数据库密码

docker run -d -p 8086:8086 --restart=always --name influxdb --network cig_network	\
-e INFLUXDB_DB=cadvisor \
-e INFLUXDB_USER=root \
-e INFLUXDB_USER_PASSWORD=root123456 \
-v influxdb_data:/var/lib/influxdb \
influxdb:1.8.4-alpine

2.3.2 CAdvisor(位于被监控主机)

这里注意填入在部署influxdb时设置的数据库、用户名、密码

-storage_driver_db=cadvisor # influxdb的数据库名称
-storage_driver_host=192.168.92.148:8086 # influxdb的主机地址
-storage_driver_user=root # influxdb的用户名
-storage_driver_password=root123456 # influxdb的密码
-storage_driver_host=influxdb:8086 # 填入的是前面influxdb的IP地址(192.168.226.128) 或者服务名称influxdb

docker run -d -p 8080:8080 --restart=always --name cadvisor --network cig_network	\
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys:ro \
-v /var/lib/docker/:/var/lib/docker:ro \
google/cadvisor	\
-storage_driver=influxdb -storage_driver_db=cadvisor \
-storage_driver_host=influxdb:8086 -storage_driver_user=root \
-storage_driver_password=root123456

2.3.3 Grafana(位于监控主机)

docker run -d -p 3000:3000 --restart=always --name grafana --network cig_network	\
-v grafana_data:/var/lib/grafana \
grafana/grafana:8.5.0

2.3.4 验证

去看 2.4.3

2.4 使用compose编排

2.4.1 新建3套组合的 docker-compose.yaml

新建目录

[root@vm001 cig]# pwd
/dockerfiles/cig

新建文件:docker-compose.yaml
内容如下:

version: '3.1'

services:    
  influxdb:
    image: influxdb:1.8.4-alpine
    restart: always
    environment:
      - INFLUXDB_DB=cadvisor
      - INFLUXDB_USER=root
      - INFLUXDB_USER_PASSWORD=root123456
    ports:
      - "8086:8086"
    volumes:
      - influxdb_data:/var/lib/influxdb
  
  cadvisor:
    image: google/cadvisor
    depends_on:
      - influxdb
    command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086 -storage_driver_user=root -storage_driver_password=root123456
    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:8.5.0
    restart: always
    depends_on:
      - influxdb
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana

volumes:
  influxdb_data: {}
  grafana_data: {}

2.4.2 启动 docker compose 文件

启动并查看

## 检查 compose 文件内容编写格式是否正确
[root@vm001 cig]# docker compose config -q
## 启动
[root@vm001 cig]# docker compose up -d
[+] Running 5/5
 ⠿ Network cig_default        Created                                                                                                                                               0.3s
 ⠿ Volume "cig_grafana_data"  Created                                                                                                                                               0.0s
 ⠿ Container cig-influxdb-1   Started                                                                                                                                               1.0s
 ⠿ Container cig-cadvisor-1   Started                                                                                                                                               2.3s
 ⠿ Container cig-grafana-1    Started                                                                                                                                               2.4s
 ## 查看
[root@vm001 cig]# docker ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED          STATUS          PORTS                                                                                            NAMES
345c815da2cf   google/cadvisor                        "/usr/bin/cadvisor -…"   14 seconds ago   Up 11 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                                        cig-cadvisor-1
d987501c1518   grafana/grafana:8.5.0                  "/run.sh"                14 seconds ago   Up 11 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                        cig-grafana-1
12c6cd28ce7d   influxdb:2.2.0                         "/entrypoint.sh infl…"   14 seconds ago   Up 12 seconds   0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp             cig-influxdb-1

2.4.3 验证三个服务

2.4.3.1 CAdvisor

URL: http://192.168.226.128:8080/containers/
cadvisor也有基础的图形展现功能,这里主要用它来作数据采集
在这里插入图片描述

2.4.3.2 InfluxDB 1.8

(1.3之后无界面)

## docker 进入 influxdb 的bash界面
[root@vm001 cig]# docker exec -it cig-influxdb-1 bash
## 输入 influx 进入数据库
bash-5.0# influx
Connected to http://localhost:8086 version 1.8.4
InfluxDB shell version: 1.8.4
## 显示库
> show databases
name: databases
name
----
cadvisor
_internal
## 使用库
> use cadvisor
Using database cadvisor
## 显示 measurements (类似于表)
> show measurements
name: measurements
name
----
## 下面这些就是cadvisor收集并输入进来的measurements了
cpu_usage_per_cpu
cpu_usage_system
cpu_usage_total
cpu_usage_user
fs_limit
fs_usage
load_average
memory_usage
memory_working_set
rx_bytes
rx_errors
tx_bytes
tx_errors
2.4.3.3 Grafana 配置

URL: http://192.168.226.128:3000/
默认账号密码: admin/admin

配置数据源
在这里插入图片描述
如下图,
如果是各自启动,且没有使用network,那么URL那里需要填上ip地址,
如果是各自启动且使用了network,那么URL可以填上服务名
如果是使用了compose 文件启动,那么URL可以填上服务名
在这里插入图片描述
添加面板
在这里插入图片描述
选择面板参数
在这里插入图片描述
保存并命名该面板
在这里插入图片描述

3. prometheus+influxdb2.0+grafana

参考:https://www.jianshu.com/p/aae4a2a6d8aa
有空填坑。。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐