Skip to main content

A production-grade Docker wrapper CLI focused on usability and simplicity

Project description

dockit

Tests Code Quality License: MIT Python 3.9+

A lightweight Docker wrapper CLI that eliminates tedious container ID lookups and verbose command repetition.

What This Is

dockit is a practical CLI wrapper for Docker and Docker Compose. It reduces friction in everyday workflows by:

  • Working with container names instead of IDs
  • Providing sensible defaults (no flags = do the right thing)
  • Auto-detecting Docker engine and Compose version
  • Formatting output clearly and without truncation
  • Supporting all major shells with completion

What This Is Not

This project is intentionally not:

  • A container engine (it wraps Docker)
  • A Docker replacement (it enhances the existing CLI)
  • A Kubernetes tool
  • A UI or dashboard
  • A configuration management system
  • A DevOps platform

If you need Docker's full capabilities, use Docker directly. If you want to reduce boilerplate in local development and debugging, dockit is for you.

Design Philosophy

Simplicity over features — Only implement what most users need daily.

Predictability — Commands map obviously to their Docker equivalents. No magic. No hidden behavior.

Zero breaking changes — Once you learn dockit, it stays consistent.

Scriptable — Output is clean, parseable, and exit codes are meaningful.

Human-first — Optimize for typing, reading, and understanding—not for machines.

Installation

For detailed installation instructions, see INSTALL.md.

Quick Install

pip install dockit
dockit version

Available globally after installation.

Quick Start

List containers

# Running containers
dockit ps

# All containers (including stopped)
dockit ps --all

View logs

# Stream logs
dockit logs myapp -f

# Logs from the last 10 minutes
dockit logs myapp --since 10m

# Filter by pattern
dockit logs myapp --grep "ERROR"

Open a shell

dockit shell myapp
# Falls back to /bin/sh if bash is unavailable

Manage containers

dockit restart myapp
dockit start myapp
dockit stop myapp
dockit rm myapp -f  # Force remove

Manage stacks

# Start compose stack (detached)
dockit up

# Stop and remove
dockit down

# Restart services
dockit restart

# Remove volumes too
dockit down -v

Cleanup

# Remove unused images, containers, volumes, networks
dockit clean

# Include all unused resources
dockit clean --all

# Preview what would be deleted
dockit clean --dry-run

Shell completion

# Install completion for your shell
dockit --install-completion

# Restart your shell
exec $SHELL

Available for bash, zsh, fish, and PowerShell.

How It Works

dockit detects your Docker setup automatically:

  • Docker engine — Looks for docker, falls back to podman
  • Compose version — Checks for docker compose (v2), falls back to docker-compose (v1)
  • Compose file — Searches for compose.yaml or docker-compose.yml

All detection happens once per command. No polling, no daemons, no background processes.

Documentation

Full command reference, engine detection details, and extension guidelines are in docs/wiki.md.

Contributing

See CONTRIBUTING.md for:

  • CI/CD pipeline details
  • How to run tests locally
  • Code quality checks
  • Pull request process

Report a bug

Use the bug report template. Include:

  • OS and version
  • Docker version
  • Full command output
  • Steps to reproduce

Propose a feature

Use the feature request template. Proposals must:

  • Be based on real workflows, not hypotheticals
  • Show the current Docker command you're using
  • Explain why the proposed wrapper improves it

Contribute code

  1. Fork the repository
  2. Create a feature branch
  3. Write tests for your changes
  4. Ensure all tests pass: pytest
  5. Submit a pull request

Coding standards:

  • Follow Python idioms; prefer clarity over cleverness
  • No over-engineering or unnecessary abstraction
  • Test coverage should not decrease
  • Commit messages should be clear and specific
  • Keep the codebase maintainable by future contributors

License

MIT

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

dockit_tool-0.1.2.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

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

dockit_tool-0.1.2-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dockit_tool-0.1.2.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for dockit_tool-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8978d57deef8ab7d1e72e07dae1622a0225045cb53186db56730dde918a605f8
MD5 63c36a9e7f84b7e29945a381098c32e5
BLAKE2b-256 0522b79596587f31f43013ba06f670fa5160c9118817e49ffc2ddac86a9eb8b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dockit_tool-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for dockit_tool-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5bcdf13c5ea5c176210012e3a008be7bfb0874a1073666a6d96100806fc411ac
MD5 b661ceccd9fbba7803408834074738dc
BLAKE2b-256 630066feb40c6ad6ff43d885aa5abf6353a6870c7c6c6152d79c9f4e1b3dce83

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