/docker.el

Manage docker from Emacs.

Primary LanguageEmacs Lisp

docker.el

Installation

The recommended way to install docker.el is through MELPA.

Otherwise, simply add the files to your load-path and then (require 'docker).

Quickstart

Use M-x docker-images, M-x docker-containers, M-x docker-volumes, M-x docker-networks or M-x docker-machines then mark/unmark items using the following keybindings:

Keymap Description
m Mark item
U Unmark all
u Unmark item
t Toggle marks
s Sort
< Shrink column
> Enlarge column
C-c C-e Export to csv
* r Mark items by regexp

Press ? to known about available keybindings in order to run actions on these items. Also check out https://github.com/politza/tablist to find more about the marking possibilities.

You can also call the API directly.

Configuration

OSX / docker-machine

The following configuration is required (some of it can probably be simplified by using https://github.com/purcell/exec-path-from-shell).

(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
(setq exec-path (append exec-path '("/usr/local/bin")))
;; Use "docker-machine env box" command to find out your environment variables
(setenv "DOCKER_TLS_VERIFY" "1")
(setenv "DOCKER_HOST" "tcp://10.11.12.13:2376")
(setenv "DOCKER_CERT_PATH" "/Users/foo/.docker/machine/machines/box")
(setenv "DOCKER_MACHINE_NAME" "box")

Screenshots

images

docker.el screenshot

Commands

docker-global-mode

Running M-x docker-global-mode creates keybindings to the various docker api. The keymap prefix is C-c d by default and can be changed with M-x customize-variable docker-keymap-prefix.

API

command keymap description
docker-images C-c d i i list images
docker-rmi C-c d i d delete image
docker-pull C-c d i f pull image
docker-push C-c d i p push image
docker-run C-c d i r run image
docker-containers C-c d c c list containers
docker-rm C-c d c d delete container
docker-stop C-c d c o stop container
docker-pause C-c d c p pause container
docker-restart C-c d c r restart container
docker-start C-c d c s start container
docker-unpause C-c d c u unpause container
docker-volumes C-c d v v list volumes
docker-volume-rm C-c d v d delete volume
docker-networks C-c d n n list networks
docker-network-rm C-c d n d delete network
dockerfile-build-buffer C-c d B Build Dockerfile

docker-images

M-x docker-images lists the docker images. After having selected some images, you can do the following actions:

  • F: pull
  • P: push
  • D: rmi
  • R: run

docker-containers

Running M-x docker-containers lists the docker containers. After having selected some containers, you can do the following actions:

  • S: start
  • O: stop
  • R: restart
  • P: pause/unpause
  • I: inspect
  • L: logs
  • C: cp
  • D: rm
  • d: diff

docker-volumes

Running M-x docker-volumes lists the docker volumes. After having selected some volumes, you can do the following actions:

  • D: rm

docker-networks

Running M-x docker-networks lists the docker networks. After having selected some networks, you can do the following actions:

  • D: rm

docker-machine-ls

Running M-x docker-machine-ls lists the docker machines. After having selected some machines, you can do the following actions:

  • S: start
  • E: env
  • O: stop
  • R: restart
  • D: rm

Philosophy

This package is inspired by packages like:

  • dired / ibuffer for selecting images / containers to operate on.
  • magit for the various actions popups.
  • projectile for the keymap.

Contributions welcome!

Either as suggestions or as pull requests by opening tickets on the issue tracker.