Skip to content
/ sen Public
forked from TomasTomecek/sen

Terminal User Interface for docker engine

License

Notifications You must be signed in to change notification settings

MahaKoala/sen

 
 

Repository files navigation

sen

Code Issues Circle CI

sen is a terminal user interface for docker engine:

  • it can interactively manage your containers and images:
  • manage? start, stop, restart, kill, delete,...
  • you are able to inspect containers and images
  • sen can fetch logs of containers and even stream logs real-time
  • all buffers support searching and filtering
  • sen receives real-time updates from docker when anything changes
  • e.g. if you create a container in another terminal, sen will pick it up
  • sen notifies you whenever something happens (and reports slow queries)
  • supports a lot of vim-like keybindings (j, k, gg, /, ...)

sen preview

Installation and running sen

I strongly advise to run sen from a docker container provided on docker hub:

$ docker pull tomastomecek/sen

This repository has set up automated builds on docker hub. In case you run into some issue, try pulling latest version before opening issue. You should run sen in containers like this:

$ docker run -v /run/docker.sock:/run/docker.sock -ti -e TERM=$TERM tomastomecek/sen

docker

You can easily build a docker image with sen inside:

$ docker build --tag=$USER/sen git://github.com/tomastomecek/sen
$ docker run -v /run/docker.sock:/run/docker.sock -ti -e TERM=$TERM $USER/sen

PyPI

sen releases are available on PyPI:

$ pip install sen
$ sen

git

sen is a python 3 only project. I recommend using at least python 3.4. This is how you can install sen from git:

$ git clone https://github.com/TomasTomecek/sen
$ cd sen
$ ./setup.py install
$ sen

Or even run sen straight from git:

$ git clone https://github.com/TomasTomecek/sen
$ cd sen
$ PYTHONPATH="$PWD:$PYTHONPATH" ./sen/cli.py

Prerequisite

Bear in mind that unix socket for docker engine needs to be accessible. By default it's located at /run/docker.sock.

Keybindings

Since I am heavy vim user, these keybindings are trying to stay close to vim.

Global

/      search (provide empty query to disable searching)
n      next search occurrence
N      previous search occurrence
f4     display only lines matching provided query (provide empty query to clear filtering)
        * main listing provides additional filtering (for more info, check Listing Section)
        * example query: "fed" - display lines containing string "fed"
ctrl o next buffer
ctrl i previous buffer
x      remove buffer
h, ?   show help

Movement

gg     go to first item
G      go to last item
j      go one line down
k      go one line up
pg up
ctrl u go 10 lines up
pg down
ctrl d go 10 lines down

Listing

@      refresh listing
f4     display only lines matching provided query (provide empty query to clear filtering)
        * space-separated list of query strings, currently supported filters are:
           * t[ype]=c[ontainer[s]]
           * t[ype]=i[mage[s]]
           * s[tate]=r[unning])
          example query may be:
           * "type=container" - show only containers (short equivalent is "t=c")
           * "type=image fedora" - show images with string "fedora" in name (equivalent "t=i fedora")

Image commands in listing

i      inspect image
d      remove image (irreversible!)

Container commands in listing

i      inspect container
l      display logs of container
f      follow logs of container
d      remove container (irreversible!)
s      stop container
t      start container
r      restart container
p      pause container
u      unpause container
X      kill container

Why I started sen?

Since I started using docker, I always dreamed of having a docker TUI. Something like tig, htop or alot. Some appeared over time. Such as docker-mon or ctop. Unfortunately, those are not proper docker TUIs. They are meant for monitoring and diagnostics.

So I realized that if I want make my dream come true, I need to do it myself. That's where I started working on sen (dream in Slovak).

About

Terminal User Interface for docker engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%