-
Notifications
You must be signed in to change notification settings - Fork 71
FAQ
Quick answers to common questions about DockMon.
DockMon is a comprehensive Docker container monitoring and management platform with real-time monitoring, intelligent auto-restart, multi-channel alerting, and event logging. It helps you keep track of Docker containers across multiple hosts and automatically recover from failures.
Current version: v2.0.0 (major rewrite with enhanced security and performance)
Yes! DockMon is open source and released under the MIT License. Free for personal and commercial use.
DockMon v2 is a complete rewrite with significant improvements:
Architecture:
- React frontend (replaced legacy UI)
- Alpine Linux base (minimal attack surface)
- Go stats service (high performance, memory-safe)
- Python 3.13 backend
- SQLAlchemy 2.0 with Alembic migrations
Security:
- OpenSSL 3.x (stricter certificate validation)
- Supervisor process management
- Enhanced rate limiting
- Improved audit logging
Performance:
- Multi-stage Docker build (smaller image)
- Optimized container stats collection
- Faster WebSocket updates
Currently, DockMon is designed for standalone Docker hosts and Docker Compose. Swarm and Kubernetes support is not currently available but may be added in future versions.
Yes! DockMon can monitor Docker hosts anywhere on your network using secure mTLS connections. See Remote Docker Setup.
DockMon v2 Requirements:
Minimum:
- Docker Engine 20.10+
- Docker Compose 2.0+
- 2GB RAM
- 1GB disk space
- Port 8001 available
Recommended:
- Docker Engine 24.0+
- Docker Compose 2.20+
- 4GB RAM
- 5GB disk space
Note: v2 has a smaller footprint than v1 thanks to Alpine Linux and multi-stage builds.
No, DockMon requires Docker to run and to monitor containers. It's distributed as a Docker container for ease of deployment and security isolation.
DockMon uses a self-signed SSL certificate for HTTPS. This is normal and secure for private use. Your browser warns you because the certificate isn't issued by a trusted authority. You can safely proceed or replace with your own certificate.
Yes! Edit docker-compose.yml:
ports:
- "8002:443" # Use any available portThen restart: docker compose restart
When enabled for a container, DockMon monitors its status. If the container stops or crashes, DockMon automatically attempts to restart it (with configurable retry attempts and delays). See Auto-Restart.
Yes! DockMon supports unlimited Docker hosts. Add hosts via the Host Management page. Each host can have its own containers, and all are visible in one unified dashboard.
No, DockMon's auto-restart works alongside Docker's restart policies. DockMon provides more granular control and visibility, but Docker's policies continue to function.
DockMon uses WebSockets for real-time updates. Container status changes appear in the dashboard within 1-2 seconds. You can adjust the polling interval in Settings (default: 10 seconds).
Yes! DockMon features a drag-and-drop dashboard:
- Drag widgets to rearrange
- Resize widgets by dragging corners
- Lock/unlock with the lock button
- Your layout is automatically saved
DockMon supports:
- Discord (webhooks)
- Slack (incoming webhooks)
- Telegram (bot API)
- Pushover (push notifications)
See Notifications for setup guides.
Yes! Each alert rule can notify multiple channels. For example, send critical alerts to both Discord and PagerDuty, while warnings only go to Slack.
Use these features:
- Cooldown periods - Prevent repeated alerts (default: 15 minutes)
- Blackout windows - Schedule quiet hours (e.g., during maintenance)
- Specific trigger conditions - Only alert on critical events
See Alert Rules and Blackout Windows.
Yes! Use custom templates with variables like {CONTAINER_NAME}, {HOST_NAME}, {OLD_STATE}, {NEW_STATE}, etc. See Notifications.
DockMon implements security best practices:
- Session-based authentication
- Bcrypt password hashing
- HTTPS-only
- Rate limiting
- Security audit logging
- Backend localhost-only binding
See Security Guide for details.
DockMon requires /var/run/docker.sock to monitor and control containers. This is inherent to Docker container management. See Security Guide for implications and mitigations.
No, we do NOT recommend this. DockMon has Docker socket access, which means a compromised instance = compromised host. Use VPN (WireGuard, OpenVPN, Tailscale) for remote access. See Security Guide.
Use the command-line tool:
docker exec -it dockmon python /app/backend/reset_password.py admin --interactiveSee First Time Setup.
- Configure Docker daemon on remote server to accept TLS connections
- Generate mTLS certificates (use our automated script)
- Add remote host in DockMon with certificates
See Remote Docker Setup for detailed instructions.
No additional software is needed on remote servers. You only need to configure the Docker daemon to accept secure connections and generate certificates.
Yes! See Installation Guide for unRAID-specific instructions.
Yes! See platform-specific guides:
DockMon has been tested with:
- 100+ containers (no issues)
- 10+ hosts (no issues)
Performance depends on your hardware and polling interval.
Solutions:
- Increase polling interval (Settings → 30s or 60s)
- Increase DockMon RAM allocation
- Use faster storage for database
- Remove unused hosts
See Troubleshooting.
Typical usage:
- CPU: 1-5%
- RAM: 200-500MB
- Disk: <100MB (plus logs)
Resource usage scales with number of containers and polling frequency.
All data is stored in a Docker volume: dockmon_data
Contains:
- SQLite database (
dockmon.db) - TLS certificates for remote hosts
- Event logs
- Configuration
# Backup database
docker cp dockmon:/app/data/dockmon.db ./backup/
# Backup entire data volume
docker run --rm \
-v dockmon_data:/data \
-v $(pwd):/backup \
alpine tar czf /backup/dockmon-backup.tar.gz /data# Stop DockMon
docker compose down
# Restore database
docker cp ./backup/dockmon.db dockmon:/app/data/
# Or restore entire volume
docker run --rm \
-v dockmon_data:/data \
-v $(pwd):/backup \
alpine tar xzf /backup/dockmon-backup.tar.gz -C /
# Start DockMon
docker compose up -dDefault: 30 days
Configure in Settings → Event Retention. You can also manually clean up old events.
Yes, if:
- You want better security (Alpine, OpenSSL 3.x)
- You want better performance (Go stats service)
- You want modern UI (React frontend)
- You're starting fresh
Wait if:
- You have complex custom alert rules (need manual recreation)
- You rely on v1-specific features
- You need time to regenerate mTLS certificates
Not recommended. v2 uses a different database schema and alert system. Downgrading requires:
- Backup v2 database
- Restore v1 database backup
- Manually reconfigure hosts and alerts
Requires recreation:
- Alert rules (schema changed)
- mTLS certificates (OpenSSL 3.x stricter validation)
Automatically migrated:
- Hosts and configurations
- Container history
- Event logs
- User accounts
For v2 updates (v2.x to v2.y):
cd dockmon
git pull
docker compose down
docker compose build --no-cache
docker compose up -dYour data is preserved in the dockmon_data volume.
No, updates preserve all configuration:
- Hosts and credentials
- Alert rules
- Notification channels
- Settings
- Dashboard layout
The database schema is automatically migrated if needed.
Check version:
# Method 1: Check Python version and Alpine release
docker exec dockmon python -c "import sys; print(f'Python {sys.version}')"
docker exec dockmon cat /etc/alpine-release
# Method 2: Check Git tag (if installed from source)
cd dockmon
git describe --tags
# Method 3: Check Docker image tag
docker inspect dockmon | grep -A5 Labelsv2 indicators:
- Python 3.13
- Alpine Linux 3.x
- Supervisor process manager
- Go stats service on port 8081
v2-specific checks:
# View logs
docker logs dockmon
# Check supervisor status
docker exec dockmon supervisorctl status
# Check individual service logs
docker exec dockmon cat /var/log/supervisor/backend-stderr.log
docker exec dockmon cat /var/log/supervisor/nginx-stderr.log
docker exec dockmon cat /var/log/supervisor/stats-service-stderr.log
# Try rebuilding without cache
docker compose down
docker compose build --no-cache
docker compose up -dRollback to v1:
# Stop v2
docker compose down
# Checkout v1 tag
git fetch --tags
git checkout v1.1.3
# Restore v1 database backup
docker cp ./backups/dockmon-pre-v2.db dockmon:/app/data/dockmon.db
# Rebuild and start
docker compose build --no-cache
docker compose up -dNote: This requires a pre-upgrade backup. Always backup before upgrading!
- Verify host is "online"
- Check host connection (Test Connection button)
- Verify Docker is running on remote host
- Check TLS certificates are correct
v2-specific:
5. If upgraded from v1, regenerate mTLS certificates (OpenSSL 3.x requires SANs)
6. Check Go stats service is running: docker exec dockmon supervisorctl status stats-service
See Troubleshooting.
- Test the notification channel (Test button)
- Verify alert rule is enabled
- Check cooldown period
- Check blackout window
v2-specific: 5. If upgraded from v1, recreate alert rules (v2 uses new alert system) 6. Verify notification webhook URLs are still valid
See Troubleshooting.
- Report bugs: GitHub Issues
- Request features: GitHub Discussions
- Submit PRs: Fork the repo and submit a pull request
- Improve docs: Edit this wiki!
Internationalization (i18n) is not currently supported but is planned for future versions. Follow GitHub Discussions for updates.
- Check the Wiki for detailed documentation
- Report a bug
- Ask in Discussions
- Email: [your-email] (TODO: add your email)
Getting Started
User Guide
- Dashboard
- Managing Hosts
- Container Operations
- Container Tagging
- Bulk Operations
- Stacks
- Auto-Restart
- Event Viewer
- Container Logs
Configuration
- Alert Rules
- Notifications
- Blackout Windows
- Automatic Updates
- Private Registry Credentials
- Health Checks
- Settings
Remote Monitoring
Access Control
Advanced
Development
Help