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

Uploaded Python 3

File details

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

File metadata

  • Download URL: dockie-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 db84c00a1a538f245ba07a989caaf7cfcc6e1dba8fececde9495988074780c3f
MD5 9e0fc8a3df6c0baad8de4a748113fce1
BLAKE2b-256 f7b7dc4c4e3bd42b93b485b9542ac399ca33b0c94ec79a84a7a4d2dcb51fc05d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dockie-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2ddf6cd6f9f6f094cf0bd8c1135bf61e57b54e8df063b8b84a4a91fb3b32bdd
MD5 36df942886582f2ad546fd590d1364d0
BLAKE2b-256 43dc59a6953a712a51133774144b362ab718dfd90e9c5b55889a3ea8c0e3190a

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