A powerful desktop tool for monitoring and managing Docker containers
Project description
docker-monitor-manager 🐳📊
A small, native desktop tool for monitoring and managing Docker containers, written in Python with Tkinter.
This repository provides a GUI application and a small system helper for common Docker-related issues. It exposes the following console entry points when installed:
docker-monitor-manager(desktop GUI)dmm(short alias for the GUI)dmm-config(system configuration helper)
What it does
- Live container stats (CPU% and RAM%) shown in a native Tkinter window.
- Auto-scaling behaviour (creates lightweight clones of overloaded containers, and manages clones in a simple policy).
- Basic container management actions from the UI (stop, pause, restart, remove, etc.).
- Embedded, restricted terminal for running safe
docker ...commands from the GUI. - Application log view for real-time monitoring of what the app is doing.
- A conservative CLI helper (
dmm-config) that can detect Docker and AppArmor issues and optionally help fix them on supported systems.
Features ✨
- 📈 Live container stats (CPU%, RAM%)
- ⚡ Auto-scale containers when resource limits are exceeded
- ⏯️ Manage containers: Stop, Pause, Unpause, Restart, and Remove containers directly from the UI.
- 🎛️ Global controls: Apply actions to all containers at once.
- 🖥️ Embedded Terminal: A secure terminal for running
dockercommands. - 📝 Live Application Logs: See what the monitor is doing in real-time.
- ⚙️ Dynamic Configuration: Adjust CPU/RAM limits and other settings without restarting the app.
Installation 🚀
Option 1: Install from PyPI (if published)
pip install docker-monitor-manager
Option 2: Install with pipx
sudo apt install pipx # (or install pipx by your OS method)
pipx install docker-monitor-manager
Option 3: Install from source (local)
git clone https://github.com/amir-khoshdel-louyeh/docker-monitor-manager.git
cd docker-monitor-manager
pip install .
Prerequisites
- Python 3.8+
- Docker Engine (installed and running)
- On Linux, to use Docker without sudo, add your user to the
dockergroup:
sudo usermod -aG docker $USER
# then log out and back in, or run:
newgrp docker
Verify membership (after restarting your system or logging out/in):
getent group docker
If you see permission denied errors when accessing Docker, make sure the Docker daemon is running and your user has permission (see Troubleshooting below).
Usage
After installation you can run the GUI:
docker-monitor-manager
# or
dmm
To run the system helper that checks Docker/AppArmor and can optionally perform conservative fixes:
dmm-config # interactive (prompts before making changes)
dmm-config --yes # non-interactive (accept prompts)
dmm-config is conservative by default and will not modify your system without confirmation unless --yes is provided.
dmm-config — quick reference
dmm-config is a small CLI tool included in the package. It performs checks and (optionally) fixes common issues required for this app to talk to Docker.
What it does
- Detects whether
dockeris available on PATH (docker --version). - On Linux it can attempt to install Docker via the distro package manager (or suggest the official install script) and can offer to install AppArmor utilities when appropriate.
- If
/etc/apparmor.d/dockerexists, it can offer to switch the profile tocomplainordisableusingaa-complain/aa-disable.
Security & behavior
- The helper is conservative — it asks before making system changes. Use
--yesonly when you trust the environment and want automatic changes.
Manual AppArmor commands (Debian/Ubuntu example)
sudo apt-get update
sudo apt-get install apparmor-utils
sudo aa-status
sudo aa-complain /etc/apparmor.d/docker
sudo aa-disable /etc/apparmor.d/docker
Troubleshooting (common)
-
"permission denied" when accessing Docker:
- Ensure the Docker daemon is running:
sudo systemctl start docker(or use your distro's service manager). - Add your user to the
dockergroup and re-login:sudo usermod -aG docker $USERthen logout/login ornewgrp docker. - If AppArmor is interfering, use
dmm-configto inspect and optionally change the Docker AppArmor profile.
- Ensure the Docker daemon is running:
-
GUI icon missing or low quality:
- Make sure Pillow is installed:
pip install Pillow - Replace
docker_monitor/logo.pngwith a high-resolution square PNG (512×512 or 1024×1024) and restart.
- Make sure Pillow is installed:
Developer / Maintainer notes
- Quick syntax check (compile-only):
python3 -m py_compile docker_monitor/*.py
- Quick import test:
python3 -c "import docker_monitor.main as m; print('OK')"
- Build distributions (wheel & sdist):
pip install build
python -m build
Source layout and important files
docker_monitor/__init__.py— package metadata (version, author).docker_monitor/main.py— main GUI application and console entry point.docker_monitor/config_cli.py—dmm-configsystem helper.requirements.txt/pyproject.toml— declare runtime dependencies (notablydockerandPillow).
Packaging & platform notes
- Windows: the GUI attempts to use generated
.icoif available (requires Pillow to generate icons). - macOS: packaging as a
.app(py2app) is recommended for a native experience and to generate.icnscorrectly. - Linux: Tkinter
PhotoImagePNGs usually work for in-window icons.
Security notes
- The embedded terminal widget only allows commands that start with
docker— arbitrary shell commands are rejected by design. the only exeption isclearcommand. dmm-configmay run package-manager commands withsudowhen requested by the user. It is intentionally conservative and prompts before making changes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docker_monitor_manager-1.0.5.tar.gz.
File metadata
- Download URL: docker_monitor_manager-1.0.5.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bd2887ec25c975bb058f7bf6963902caf5a12113c113db861f6aa085722a021
|
|
| MD5 |
b7b92e6d4c0a83788d833f1b7db365d4
|
|
| BLAKE2b-256 |
679a86af44e67cd1a97461ba9bf6869ff3bd3170943ab861a08bfd76cdf9ae96
|
File details
Details for the file docker_monitor_manager-1.0.5-py3-none-any.whl.
File metadata
- Download URL: docker_monitor_manager-1.0.5-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c235f81985347d2845654a738318f84658eb8624503fcb9dfe59bed0b8cdaad
|
|
| MD5 |
6b1a7a54d824d2b6f92c51e1a8bcfd5a
|
|
| BLAKE2b-256 |
048d13db6711d3d9aa20163881764c28048808322112c0f4654f97ab135df51a
|