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.2.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.2-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dockie-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 f1e6fc62b00e3899ac3d24f3d2a3d712dabd25ebb444edea872d65f89bd4bbc6
MD5 a225722766f4cd3c1cb1e832e44a2ecb
BLAKE2b-256 5dc4243317920a01b362a4a74d5f4d98b79ac39af30622633418d00729cdebd6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dockie-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 16499fbbc16eb88e05930b48609fa174bb0e6c5ddbaf075845936f331f4d9440
MD5 9f847847fbcb007c82a4e30d0d1d25ba
BLAKE2b-256 58346d11de377c17951a7169a1e11ae468c826e0cc4ef5cd77430291e2286635

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