#docker #terminal #ratatui #developer-tools #container-image

app ducker

A slightly quackers Docker TUI based on k9s ๐Ÿฆ†

3 releases

new 0.0.3 Jun 30, 2024
0.0.2 Jun 27, 2024
0.0.1 Jun 27, 2024

#61 in Development tools

Download history 417/week @ 2024-06-26

417 downloads per month

Custom license

110KB
3K SLoC

Ducker

๐Ÿ‹ A terminal app for managing docker containers, inspired by K9s
Installation ยท Useage ยท Configuration

๐Ÿฆ€ Written in Rust ๐Ÿฆ€

Installation

โ— Note: Ducker is currently in a "pre-release" state. โ—
Please do install and try it out - it is currently undergoing active development. There are a number of known issues and features in the pipeline (see the pinned issue). Any feedback is welcome.

Cargo

There isn't currently a downloadable build; to install you will need cargo installed:

cargo install --locked ducker

AUR

You can install ducker from the AUR with using an AUR helper.

paru -S ducker

Unstable

To install the latest unstable version of Ducker, run the following command:

cargo install --git https://github.com/robertpsoane/ducker

Useage

Ducker is comprised of a set of pages, each of which display specific information about and/or allow interaction with the docker containers and images on the host system.

Top level pages can be navigated to with commands, input via the prompt. Pages can be interacted with using actions; these are input via hotkey inputs.

A legend for common global hotkey inputs is displayed at the bottom of the screen; one for contextual (eg different on each page) hotkey inputs are displayed in the top right.

Commands

The following commands are supported:

Command Aliases Description
images image Open the Images top level page
containers container Open the Containers top level page
quit q Close the application

Actions

Global

The following global actions are available on all pages:

Hotkey Action
k/โ†‘ Navigate up in a list/table
j/โ†“ Navigate down in a list/table
Q/q Close the application
: Open the command prompt
G Navigate to the bottom of a list or table
g Navigate to the top of a list or table

Containers

The following actions are available on the Containers page:

Hotkey Action
Ctrl+d Delete the currently selected container
a Exec into the currently selected container (if container is running)*
l View the logs for the currently selected container
r Run the currently selected container
s Stop the currently selected container

*NB: exec currently only supports containers with bash installed. The intention is that this will be updated to provide a user option.

Images

The following actions are available on the Images page:

Hotkey Action
Ctrl+d Delete the currently selected image
d Toggle whether or not to show dangling images (off by default)

Logs

The following actions are available on the Logs page:

Hotkey Action
Esc Return to the containers page

Configuration

Ducker is configured via a yaml file found in the relevant config directory for host platform. On linux this is ~/.config/ducker/config.yaml.

The following table summarises the available config values:

Key Default Description
prompt ๐Ÿฆ† The default prompt to display in the command pane
default_exec /bin/bash The default prompt to display in the command pane. NB - currently uses this for all exec's; it is planned to offer a choice
docker_path unix:///var/run/docker.sock The location of the socket on which the docker daemon is exposed (defaults to npipe:////./pipe/docker_engine on windows)
theme [See below] The colour theme configuration

If a value is unset or if the config file is unfound, Ducker will use the default values. If a value is malformed, Ducker will fail to run.

To create a fully populated default config, run ducker with the -e/--export-default-config flag; this will write the default config to the default location, overwriting any existing config.

Themes

By default, ducker uses the terminal emulator's preset colours. However, it is possible to set a custom colour theme in config. This is set in the theme section of the config file. The following table describes the theme options. The default theme provides the colours provided in the GIF in this README.

Key Default Description
use_theme false When true uses the colour scheme defined in config, when false uses the default terminal colours
title #96E072 The colour used for the Ducker font in the header
help #EE5D43 The colour used in the help prompts in the header
background #23262E The colour used in the background
footer #00E8C6 The colour used for the text in the footer
success #96E072 The colour used for a successful result
error #EE5D43 The colour used for an error result
positive_highlight #96E072 The colour used for highlighting in a happy state
negative_highlight #FF00AA The colour used for highlighting in a sad state

Tmux

Some characters in ducker use italics/boldface. This doesn't work by default when running in tmux. To fix this, add the following to your add to tmux.conf

set -g default-terminal "tmux-256color"
set -as terminal-overrides ',xterm*:sitm=\E[3m'

Dependencies

~32โ€“48MB
~854K SLoC