使用Docker部署Glances系统监控工具
什么是Glances?
Glances是一款开源的跨平台系统监控工具,采用Python编写,能够实时监控CPU、内存、磁盘、网络、进程等系统资源使用情况。它提供了命令行界面和Web界面两种展示方式,支持多种操作系统平台。
为什么选择Docker方式运行Glances?
使用Docker容器运行Glances具有以下优势:
- 环境隔离:不需要在主机上安装Python环境及其依赖
- 快速部署:通过简单的docker pull和run命令即可完成部署
- 版本管理:可以轻松切换不同版本的Glances
- 资源占用低:基于Alpine的镜像体积小巧
- 配置灵活:可以挂载自定义配置文件
Docker镜像获取与选择
Glances提供了多种Docker镜像标签,满足不同场景需求:
基础镜像选择
- Alpine版:体积小巧,适合资源有限的环境
- Ubuntu版:兼容性更好,适合需要更多系统工具的场景
功能版本选择
| 镜像标签 | 描述 | 适用场景 |
|---|---|---|
| latest | 最小化安装+基本功能 | 基础监控需求 |
| latest-full | 完整功能版 | 需要所有监控功能 |
| dev | 开发版(可能不稳定) | 测试新功能 |
获取镜像的基本命令:
docker pull nicolargo/glances:latest
运行Glances容器
1. 控制台模式运行
最基本的运行方式,适合直接在终端查看监控信息:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \
--pid host --network host -it nicolargo/glances
参数说明:
--rm:容器退出后自动删除-v /var/run/docker.sock:允许监控Docker容器--pid host:监控主机所有进程--network host:使用主机网络模式
2. Web服务器模式运行
通过Web界面访问监控数据:
docker run -d --restart="always" -p 61208-61209:61208-61209 \
-e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro \
--pid host nicolargo/glances
访问方式:浏览器打开 http://<主机IP>:61208
3. 使用自定义配置
创建自定义Dockerfile:
FROM nicolargo/glances
COPY glances.conf /glances/conf/glances.conf
CMD python -m glances -C /glances/conf/glances.conf $GLANCES_OPT
或直接运行:
docker run -v `pwd`/glances.conf:/etc/glances/glances.conf \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--pid host -it nicolargo/glances
高级配置技巧
显示主机OS信息
默认情况下,Glances会显示容器内的OS信息。要显示主机信息,需要挂载os-release文件:
docker run -v /etc/os-release:/etc/os-release:ro nicolargo/glances
安全认证配置
为Web界面添加密码保护有两种方式:
方法1:生成密码文件
- 进入容器生成密码:
docker exec -it glances_container glances -w --password
- 将密码文件复制到主机并挂载
方法2:配置文件设置 在glances.conf中添加:
[passwords]
localhost=mypassword
default=defaultpassword
Docker Compose集成示例
完整的docker-compose.yml示例:
version: '3'
services:
monitoring:
image: nicolargo/glances:latest
restart: always
pid: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/os-release:/etc/os-release:ro
environment:
- "GLANCES_OPT=-w"
ports:
- "61208-61209:61208-61209"
GPU监控支持(NVIDIA)
使用docker run:
docker run --rm --gpus all -v /var/run/docker.sock:/var/run/docker.sock:ro \
--pid host --network host -it nicolargo/glances:latest-full
使用docker-compose:
services:
monitoring:
image: nicolargo/glances:latest-full
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
最佳实践建议
- 生产环境建议使用
latest或指定版本号,避免使用dev标签 - Web服务模式下,建议配置密码保护
- 长期运行的监控服务,添加
--restart=always参数 - 需要监控Docker容器时,必须挂载docker.sock
- 对性能要求高的场景,使用
--network host模式
通过Docker部署Glances,您可以快速获得一个功能完善的系统监控解决方案,而无需担心环境配置问题。根据实际需求选择合适的镜像版本和运行参数,即可轻松监控您的系统资源使用情况。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



