Overview
The Containers page is the central hub for managing all your Docker containers across environments. It provides real-time visibility into container status, resource usage, and health checks, with powerful tools for starting, stopping, updating, and monitoring containers.Key Features
Real-Time Container Management
- Live Status Updates: Container states update automatically via Server-Sent Events (SSE)
- Resource Monitoring: CPU, memory, network, and disk I/O statistics refreshed every 5 seconds
- Health Checks: Visual indicators for container health status (healthy, unhealthy, starting)
- Change Highlighting: Configurable visual highlighting when resource metrics change significantly
Container Operations
Single Container Actions:- Start, stop, pause, unpause, and restart containers
- Remove containers (with force option)
- Update containers to latest image versions
- View detailed logs with follow mode
- Open interactive terminal sessions
- Inspect container configuration and metadata
- Select multiple containers for batch operations
- Bulk start, stop, restart, pause, unpause
- Bulk remove with confirmation
- Update multiple containers simultaneously
Container Creation
Create containers with comprehensive configuration options:- Image Selection: Pull from registries or use local images
- Port Mappings: Define host-to-container port mappings
- Volume Mounts: Bind mounts and named volumes
- Environment Variables: Set environment variables and secrets
- Network Configuration: Attach to custom networks
- Resource Limits: CPU and memory constraints
- Restart Policies: Configure automatic restart behavior
- Labels: Add custom labels for organization
Advanced Features
Auto-Update:- Check for image updates across all containers
- Schedule automatic updates with vulnerability scanning
- Configure update policies per container
- Vulnerability criteria: never, any, critical+high, critical only, or more than current
- Interactive shell access to running containers
- Multiple concurrent terminal sessions
- Shell detection (bash, sh, ash, zsh)
- User selection (root or custom user)
- Horizontal or vertical layout modes
- Browse container filesystem
- Upload and download files
- Edit files in-browser
- View file permissions and metadata
Filtering and Search
- Text Search: Search by container name, image, or stack name
- Status Filter: Filter by running, paused, exited, created, dead, restarting
- Multi-Select Filters: Combine multiple status filters
- Sortable Columns: Sort by name, image, state, health, uptime, stack, IP, CPU, memory, ports
UI Features
Data Grid:- Expandable rows for detailed information
- Resizable columns
- Persistent column widths and sort state
- Skeleton loading states
- Container ID (click to copy)
- Image name with tag
- Status badge with color coding
- Health status indicator
- Uptime display
- Stack/Compose project badge
- Resource usage graphs
- Network information (IP address, ports)
- Volume count and details
- Real-time log streaming
- Search and filter logs
- Horizontal or vertical layout
- Multiple log panels for different containers
- Auto-scroll with manual override
How to Use
Creating a Container
- Click the Create button in the top-right corner
- Select Image:
- Pull from a registry by entering an image name
- Or select from locally available images
- Configure Container:
- Enter a unique container name
- Set port mappings (e.g.,
8080:80) - Add environment variables
- Mount volumes for data persistence
- Advanced Options (optional):
- Set resource limits
- Configure restart policy
- Add labels
- Select network mode
- Click Create to start the container
Starting and Stopping Containers
Single Container:- Click the Play icon to start a stopped container
- Click the Stop icon to stop a running container
- Use the Pause icon to freeze a running container
- Select containers using the checkboxes
- Click the bulk action button in the selection bar:
- Start: Start all selected stopped containers
- Stop: Stop all selected running containers
- Restart: Restart all selected containers
Checking for Updates
- Click Check for updates to scan all containers
- Review containers with available updates (highlighted in amber)
- Click Update all to update all containers at once
- Or click the update icon on individual containers
- Review vulnerability scan results (if enabled)
- Confirm or cancel the update
Viewing Logs
- Click the Logs icon on a container row
- Logs panel opens at the bottom (or side, depending on layout)
- Use the search box to filter log entries
- Click Follow to auto-scroll with new logs
- Click the X to close the logs panel
Opening a Terminal
- Click the Terminal icon on a container row
- Select the shell type (bash, sh, etc.)
- Select the user (root or custom)
- Click Connect to open the terminal
- Multiple terminals can be open simultaneously
- Switch between terminals using the tabs
Browsing Files
- Click the Folder icon to open the file browser
- Navigate directories by clicking folder names
- Click Upload to upload files
- Click Download to download files
- Click Edit to modify files in-browser
UI Walkthrough
Header Section
- Title: “Containers” with total count
- Search Bar: Filter containers by name, image, or stack
- Status Filter: Multi-select dropdown for container states
- Create Button: Opens container creation modal
- Check for Updates: Scans for available image updates
- Update All: Updates all containers with available updates
- Prune: Removes stopped containers
- Refresh: Manually refresh container list
- Layout Toggle: Switch between horizontal and vertical layouts
Selection Bar
Appears when containers are selected:- Number of selected containers
- Clear: Deselect all containers
- Start/Stop/Restart/Pause/Unpause: Bulk actions
- Update: Update selected containers
- Remove: Delete selected containers
Container Table
Columns:- Checkbox: Select for bulk operations
- Name: Container name (click to highlight)
- Image: Image name and tag
- Status: Running, stopped, paused, etc.
- Health: Health check status
- Uptime: Time since container started
- Stack: Compose project name (if applicable)
- IP: Container IP address
- Ports: Published ports (clickable if public IP configured)
- CPU: CPU usage percentage
- Memory: Memory usage (MB/GB)
- Network: Network I/O (Rx/Tx)
- Disk: Disk I/O (Read/Write)
- Actions: Quick action buttons
- Play/Stop: Start or stop container
- Pause/Unpause: Freeze or resume container
- Restart: Restart container
- Update: Update to latest image
- Logs: View container logs
- Terminal: Open interactive shell
- Inspect: View container details
- Files: Browse container filesystem
- Edit: Modify container configuration
- Remove: Delete container
Bottom Panel (Logs/Terminal)
- Tabs: Switch between active log/terminal sessions
- Close Button: Close the current panel
- Resize Handle: Drag to adjust panel height
- Layout Toggle: Switch to vertical layout (panel on right)
Real Examples
Example: Running a Web Application
Example: Database Container with Backup
Example: Microservice with Health Check
Database Schema
Container data is tracked through the Docker API and enhanced with metadata from these tables: auto_update_settings:- Container auto-update configuration
- Schedule types: daily, weekly, cron expression
- Vulnerability criteria for blocking updates
- Last checked and last updated timestamps
- Containers with available updates
- Current and new image tags
- Stored until update is applied or dismissed
Technical Details
Real-Time Updates
- SSE Connection: Subscribes to Docker events for container changes
- Stats Polling: Fetches container statistics every 5 seconds via streaming API
- Event Types: start, stop, create, destroy, die, kill, pause, unpause, restart, health_status
- Automatic Refresh: On tab visibility change, reconnects and refreshes data
Performance Optimizations
- Lazy Loading: Stats only fetched for visible containers
- Debounced Search: 200ms delay on search input
- Virtual Scrolling: Efficient rendering for large container lists
- Cached Shell Detection: Shells detected once per container per session
State Management
- Persistent Store: Container data persists across page navigations
- Local Storage: Column widths, sort state, expanded rows, status filters
- URL Parameters: Search query preserved in URL
API Endpoints
GET /api/containers- List all containersPOST /api/containers- Create new containerGET /api/containers/stats/stream- Stream container statisticsPOST /api/containers/:id/start- Start containerPOST /api/containers/:id/stop- Stop containerPOST /api/containers/:id/restart- Restart containerPOST /api/containers/:id/pause- Pause containerPOST /api/containers/:id/unpause- Unpause containerDELETE /api/containers/:id- Remove containerPOST /api/containers/check-updates- Check for image updatesPOST /api/containers/batch-update- Update multiple containersPOST /api/prune/containers- Prune stopped containers
