
cAdvisor(Container Advisor)是一款容器监控工具,版本为0.49.1,源自https://github.com/google/cadvisor%E3%80%82%E8%AF%A5%E9%95%9C%E5%83%8F%E6%94%AF%E6%8C%81AMD64%E3%80%81ARM64v8%E3%80%81ARM32v7%E5%92%8CARM32v5%E6%9E%B6%E6%9E%84%EF%BC%8C%E5%B7%B2%E5%9C%A8x86_64 AMD设备和树莓派上测试通过。
cAdvisor作为运行中的守护进程,为容器用户提供对容器资源使用和性能特性的深入了解。它能够收集、聚合、处理并导出有关运行中容器的信息,包括资源隔离参数、历史资源使用情况、完整历史资源使用的直方图以及网络统计数据,这些数据按容器和整机级别导出。
通过以下Docker Compose配置可快速在本地启动cAdvisor,监控整个机器的容器状态:
yaml--- version: "3.1" networks: back-tier: services: cadvisor: container_name: cadvisor image: d3vilh/cadvisor:latest restart: unless-stopped privileged: true command: - '--raw_cgroup_prefix_whitelist=/docker/' - '--docker_only=true' - '--disable_metrics=memory_numa,advtcp,cpuset,referenced_memory,cpu_topology,tcp,udp,percpu,process,hugetlb,sched' - '--housekeeping_interval=30s' volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys/fs/cgroup:/cgroup:ro - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro - /etc/machine-id:/etc/machine-id:ro devices: - '/dev/kmsg:/dev/kmsg' ports: - '8081:8080/tcp' networks: - back-tier
启动后,cAdvisor将在后台运行,可通过http://localhost:8080访问Web界面。配置中包含了cAdvisor观测Docker状态所需的目录挂载。
cAdvisor收集的数据可通过Grafana进行可视化展示,示例如下:
!https://github.com/d3vilh/raspberry-gateway/raw/master/images/raspi-monitoring_5.png !https://github.com/d3vilh/raspberry-gateway/raw/master/images/raspi-monitoring_6.png
可通过以下Prometheus配置集成cAdvisor:
yamlservices: prometheus: container_name: prometheus image: prom/prometheus:latest restart: always command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--storage.tsdb.retention.time=90' - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' volumes: - ./prometheus/:/etc/prometheus/ - prometheus_data:/prometheus ports: - 9090:9090 links: - ping:ping - speedtest:speedtest networks: - back-tier
详细的Prometheus配置可参考https://github.com/d3vilh/raspberry-gateway/blob/master/templates/prometheus.yml.j2%E3%80%82
构建该镜像使用的Dockerfile如下:
dockerfileFROM golang:buster AS builder ARG VERSION RUN apt-get update \ && apt-get install make git bash gcc \ && mkdir -p $GOPATH/src/github.com/google \ && git clone https://github.com/google/cadvisor.git $GOPATH/src/github.com/google/cadvisor WORKDIR $GOPATH/src/github.com/google/cadvisor RUN git fetch --tags RUN git checkout $VERSION RUN go env -w GO111MODULE=auto RUN make build RUN cp ./_output/cadvisor / # ------------------------------------------ # 从deploy/Dockerfile复制而来,移除了ARM架构Alpine上不可用的"zfs"依赖 FROM alpine:latest MAINTAINER dengnan@google.com vmarmol@google.com vishnuk@google.com jimmidyson@gmail.com stclair@google.com LABEL maintainer="Mr.Philipp <d3vilh@github.com>" RUN sed -i 's,https://dl-cdn.alpinelinux.org,http://dl-4.alpinelinux.org,g' /etc/apk/repositories RUN apk --no-cache add libc6-compat device-mapper findutils thin-provisioning-tools && \ echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \ rm -rf /var/cache/apk/* # 从构建阶段复制cAdvisor COPY --from=builder /cadvisor /usr/bin/cadvisor EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=3s \ CMD wget --quiet --tries=1 --spider http://localhost:8080/healthz || exit 1 ENTRYPOINT ["/usr/bin/cadvisor", "-logtostderr"]
执行以下命令构建镜像:
shelldocker build --progress=plain -t local/cadvisor .
以下是 d3vilh/cadvisor 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务