Skip to main content

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 docker commands.
  • 📝 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 docker group:
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 docker is 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/docker exists, it can offer to switch the profile to complain or disable using aa-complain / aa-disable.

Security & behavior

  • The helper is conservative — it asks before making system changes. Use --yes only 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 docker group and re-login: sudo usermod -aG docker $USER then logout/login or newgrp docker.
    • If AppArmor is interfering, use dmm-config to inspect and optionally change the Docker AppArmor profile.
  • GUI icon missing or low quality:

    • Make sure Pillow is installed: pip install Pillow
    • Replace docker_monitor/logo.png with a high-resolution square PNG (512×512 or 1024×1024) and restart.

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.pydmm-config system helper.
  • requirements.txt / pyproject.toml — declare runtime dependencies (notably docker and Pillow).

Packaging & platform notes

  • Windows: the GUI attempts to use generated .ico if available (requires Pillow to generate icons).
  • macOS: packaging as a .app (py2app) is recommended for a native experience and to generate .icns correctly.
  • Linux: Tkinter PhotoImage PNGs 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 is clear command.
  • dmm-config may run package-manager commands with sudo when requested by the user. It is intentionally conservative and prompts before making changes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docker_monitor_manager-1.0.5.tar.gz (23.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docker_monitor_manager-1.0.5-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

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

Hashes for docker_monitor_manager-1.0.5.tar.gz
Algorithm Hash digest
SHA256 0bd2887ec25c975bb058f7bf6963902caf5a12113c113db861f6aa085722a021
MD5 b7b92e6d4c0a83788d833f1b7db365d4
BLAKE2b-256 679a86af44e67cd1a97461ba9bf6869ff3bd3170943ab861a08bfd76cdf9ae96

See more details on using hashes here.

File details

Details for the file docker_monitor_manager-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for docker_monitor_manager-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5c235f81985347d2845654a738318f84658eb8624503fcb9dfe59bed0b8cdaad
MD5 6b1a7a54d824d2b6f92c51e1a8bcfd5a
BLAKE2b-256 048d13db6711d3d9aa20163881764c28048808322112c0f4654f97ab135df51a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page