Skip to main content

A Terminal User Interface (TUI) for Docker management built with Textual

Project description

Dockie - Docker TUI

A Terminal User Interface (TUI) for Docker management built with Textual.

Features

✅ Containers Management

  • View all containers: Shows running and stopped containers in a clean table format
  • Real-time status: Color-coded status indicators (green for running, red for exited, yellow for other states)
  • Container uptime: Shows how long running containers have been up (e.g., "2d 14h 30m")
  • Fuzzy search: Filter containers by name, image, or status with intelligent fuzzy matching
  • Container operations:
    • Restart containers
    • Full-screen live log viewer: View container logs using native Docker commands with real-time tailing
    • Refresh container list
  • Advanced log viewer:
    • Native Docker integration: Uses docker logs -f for real-time log following
    • Full-screen display: Logs take up the entire screen except for header/footer
    • Raw Docker output: Displays logs exactly as docker logs -f -n 10000 would show
    • Interactive scrolling: Full scroll support with keyboard navigation
    • Auto-scrolling: Automatically follows new logs, but can be disabled by scrolling up
    • Memory efficient: Keeps only the last 10000 log lines in memory
    • Live updates: Real-time log streaming
  • Keyboard shortcuts:
    • Escape - Go back to main menu
    • r or Ctrl+R - Refresh container list
    • Tab - Toggle focus between search and table
    • Ctrl+L - Show logs for selected container
    • Ctrl+A - Toggle auto-refresh
    • Ctrl+E - Toggle show/hide exited containers
    • In log viewer:
      • Escape or Q - Close logs
      • Ctrl+C - Stop following logs (but keep viewer open)
      • R - Restart log following

🚧 Planned Features

  • Images management
  • Networks management
  • Volumes management
  • Container statistics and monitoring

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd dockie-py
    
  2. Install dependencies:

    uv sync
    

    Or with pip:

    pip install -e .
    

Usage

  1. Make sure Docker is running on your system

  2. Run the application:

    python main.py
    

    Or if installed:

    dockie
    
  3. Navigate the interface:

    • Use the main menu to select "Containers"
    • Use arrow keys to navigate the container table
    • View container information including ID, name, image, status, creation time, uptime, and ports
    • Use the search box to filter containers
    • Select a container and use the action buttons: Restart, Logs, or Refresh

Requirements

  • Python 3.12+
  • Docker installed and running
  • Terminal with support for mouse and keyboard input

Dependencies

  • textual: Modern TUI framework
  • docker: Python Docker SDK
  • fuzzywuzzy: Fuzzy string matching for search
  • python-levenshtein: Fast string matching algorithms

Screenshots

The application provides:

  • A clean main menu with navigation options
  • A detailed containers view with real-time information
  • Intuitive search and filtering capabilities
  • Color-coded status indicators for quick visual feedback

Development

To contribute to the project:

  1. Install development dependencies:

    uv sync --dev
    
  2. Run tests:

    pytest
    
  3. Format code:

    black .
    ruff check .
    

License

MIT License - see LICENSE file for details.

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

dockie-0.1.1.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

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

dockie-0.1.1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file dockie-0.1.1.tar.gz.

File metadata

  • Download URL: dockie-0.1.1.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for dockie-0.1.1.tar.gz
Algorithm Hash digest
SHA256 45e63898b14c706ed6cd48effe3f2d97b75f8191d57be809f3d71cecc12f041b
MD5 55119b1765f445a0f2ca927dbc7da063
BLAKE2b-256 9c824d8c7e5e3cdc12ccb1e09afbc3c54d841d1b94a72d195654dd48d7def0a9

See more details on using hashes here.

File details

Details for the file dockie-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: dockie-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for dockie-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 089d760c6f0d09e6e0aea7e5746c256dfcd6a7eac4c67759f46644df1c7b31b8
MD5 15b95e5b132092029b3b2fd7a8bc25ee
BLAKE2b-256 86b8e80b1655e56e2c332f19522d4fda5ab8e076ef092565d46b582a2f3f8011

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