Skip to content

pmady/docker-gpu-dashboard-extension

Repository files navigation

Docker GPU Dashboard Extension

Real-time NVIDIA GPU metrics directly in Docker Desktop. Monitor GPU utilization, memory usage, temperature, and power draw without leaving your IDE.

GPU Dashboard Screenshot

Features

  • Real-time monitoring — 2-second polling for all NVIDIA GPUs on the host
  • Per-GPU metrics — utilization, memory, temperature, power, fan speed
  • Historical charts — 2-minute rolling graphs for all metrics
  • Color-coded alerts — green/yellow/red thresholds for quick visual scanning
  • Mock mode — develop and demo without GPU hardware
  • Zero configuration — detects GPUs automatically via NVML

Installation

docker extension install pmady/docker-gpu-dashboard-extension:latest

Or build from source:

make install

Requirements

  • Docker Desktop 4.30+
  • NVIDIA GPU with drivers installed (or use mock mode for development)
  • NVIDIA Container Toolkit (for real GPU metrics)

Development

Quick start with mock data (no GPU needed)

# Install frontend dependencies
make ui-deps

# Run backend in mock mode
make backend-mock

# In another terminal, start frontend dev server
cd ui && npm run dev

# Enable hot reload in Docker Desktop
make dev

Build the extension

make build

Validate

make validate

Architecture

Docker Desktop ←→ Extension UI (React + Recharts)
                      ↕
                Extension Backend (Go)
                      ↕
                NVML Library → GPU 0, GPU 1, ...
  • Frontend: React 18 + Recharts for live charts, Vite for bundling
  • Backend: Go HTTP server on Unix socket, polls NVML every 2 seconds
  • Communication: Docker Extension API (ddClient.extension.vm.service)

Metrics Collected

Metric Source Unit
GPU Utilization nvml.DeviceGetUtilizationRates() %
Memory Used/Total nvml.DeviceGetMemoryInfo() bytes
Memory Controller Utilization nvml.DeviceGetUtilizationRates() %
Temperature nvml.DeviceGetTemperature() Celsius
Power Draw nvml.DeviceGetPowerUsage() Watts
Power Limit nvml.DeviceGetEnforcedPowerLimit() Watts
Fan Speed nvml.DeviceGetFanSpeed() %
Driver Version nvml.SystemGetDriverVersion() string

Related Projects

Contributing

Contributions welcome! Please open an issue or PR.

License

Apache 2.0


Built by Pavan Madduri — Senior Cloud Platform Engineer, CNCF Golden Kubestronaut

About

Docker Desktop Extension — Real-time NVIDIA GPU metrics dashboard. Monitor utilization, memory, temperature, and power draw directly in Docker Desktop.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors