Skip to content

cbuntingde/docker-dash

Repository files navigation

DockerDash

DockerDash Screenshot

A clean, professional Docker management dashboard built with React and TypeScript. Designed for managing Docker containers, images, volumes, and networks on any headless server via a web interface.

Features

  • Container Management: Start, stop, restart, create, inspect, and delete containers
  • Container Logs: View real-time logs for any container with optional follow mode
  • Image Management: View image details, pull new images, and delete unused images
  • Network Management: Browse Docker networks and inspect their configuration
  • Volume Management: View volumes and their disk usage
  • Project Grouping: Group containers by Docker Compose project
  • Cleanup Tools: Prune containers, images, and volumes to free space
  • Resource Monitoring: CPU and memory usage for running containers
  • System Overview: Docker daemon version, image/container counts, and disk usage

Getting Started

Prerequisites

  • Node.js 18+
  • Docker daemon running
  • Docker socket accessible at /var/run/docker.sock

Installation

npm install

Development

npm run dev

The frontend runs on http://localhost:5173 and the API server on http://localhost:3001.

Access from other machines using the network address (e.g., http://192.168.1.x:5173).

Build

npm run build

Project Structure

docker-dash/
├── server/
│   └── index.js              # Express API proxy for Docker socket
├── src/
│   ├── App.tsx               # Main React component
│   ├── main.tsx              # React entry point
│   ├── index.css             # Styles
│   ├── services/
│   │   └── docker.ts         # API client
│   ├── types/
│   │   └── docker.ts         # TypeScript interfaces
│   └── components/
│       ├── Modal.tsx
│       ├── ContainerInspectModal.tsx
│       ├── CreateContainerModal.tsx
│       ├── PullImageForm.tsx
│       ├── NetworkTable.tsx
│       └── VolumeTable.tsx
└── vite.config.ts            # Vite configuration with proxy

API Endpoints

All endpoints are prefixed with /api and served by the Express proxy, which forwards them to the Docker daemon over its Unix socket.

Containers

Method Endpoint Description
GET /containers List all containers (including stopped)
POST /containers/create Create and start a new container from an image
GET /containers/:id/stats Resource stats (CPU, memory, network) for a container
GET /containers/:id/inspect Full container configuration and state
GET /containers/:id/logs Recent container logs (multiplexed format, parsed)
POST /containers/:id/start Start a stopped container
POST /containers/:id/stop Stop a running container
POST /containers/:id/restart Restart a container
DELETE /containers/:id Force-delete a container

Images

Method Endpoint Description
GET /images List all images
GET /images/:id Image details (config, env, command)
POST /images/pull Pull an image by name
DELETE /images/:id Delete an image

Volumes & Networks

Method Endpoint Description
GET /volumes List volumes with usage data
GET /networks List Docker networks

System

Method Endpoint Description
GET /system Docker daemon info (version, container/image counts)
GET /df Disk usage across images, containers, and volumes

Cleanup

Method Endpoint Description
POST /prune/containers Remove all stopped containers
POST /prune/images Remove dangling images
POST /prune/images/all Remove all unused images
POST /prune/volumes Remove unused volumes

Tech Stack

  • React 19
  • TypeScript
  • Vite
  • Framer Motion
  • Phosphor Icons
  • Express (API proxy)

Created by Chris Bunting <cbuntingde@gmail.com>

About

A clean, professional Docker management dashboard built with React and TypeScript. Manage Docker containers, images, and volumes via a web interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors