:tools docker
I heard you like OSes, so I…
1. Description
This module allows you to manipulate Docker images, containers & more from within Emacs and provides the dockerfile-mode major mode to edit Dockerfiles. Additional convenience functions are provided to make building images easier.
Also, docker-tramp offers a TRAMP method for Docker containers.
1.1. Maintainers
This module has no dedicated maintainers. Become a maintainer?
1.2. Module flags
- +lsp
- Enable LSP support for
dockerfile-mode
. Requires :tools lsp and a langserver (supports dockerfile-language-server-nodejs).
1.3. Packages
1.4. Hacks
No hacks documented for this module.
2. Prerequisites
3. Usage
3.1. Docker control
Use M-x docker
, select a resource, and then mark or unmark items using the
following keybindings (for more marking possibilities, check out
https://github.com/politza/tablist):
Binding | Description |
---|---|
? | List actions |
l | Configure listing |
m | Mark item |
u | Unmark item |
t | Toggle marks |
U | Unmark all |
s | Sort |
* r | Mark items by regexp |
< | Shrink column |
> | Enlarge column |
C-c C-e | Export to csv |
3.1.1. Supported commands
- docker container: attach, cp, diff, inspect, kill, logs, pause, rename, restart, rm, start, stop, unpause
- docker image: inspect, pull, push, rm, run, tag
- docker network: rm
- docker volume: rm
- docker-machine: create, env, restart, rm, start, stop
- docker-compose: build, config, create, down, exec, logs, pull, push, remove, restart, run, start, stop, up
You can also enter dired or open a file inside a container or volume.
3.2. TRAMP
Offers the TRAMP method docker to access running containers.
C-x C-f /docker:user@container:/path/to/file
user | the user that you want to use (optional) |
container | the id or name of the container |
4. Configuration
4.1. Popups
Thanks to magit-popup, all the popups default arguments can be customized. For
example, here is how to customize the arguments for docker-image-run-popup
:
or inside a use-package
declaration:
4.1.1. Other useful variables
Variable | Description | Default |
---|---|---|
docker-command |
The docker binary to use | docker |
docker-container-default-sort-key |
Sort key for docker containers | ("Image") |
docker-container-shell-file-name |
Shell to use when entering containers | /bin/bash |
docker-image-default-sort-key |
Sort key for docker images | ("Repository") |
docker-machine-default-sort-key |
Sort key for docker machines | ("Name") |
docker-network-default-sort-key |
Sort key for docker networks | ("Name") |
docker-run-as-root |
Run docker as root | nil |
docker-volume-default-sort-key |
Sort key for docker volumes | ("Driver") |
4.2. Completion in Dockerfiles
By default, the keyword completion function detects the docker-compose version of the current buffer and suggests the appropriate keywords.
You can change the candidates offered by the backend by customizing
docker-compose-keywords
.
5. Troubleshooting
5.1. Tramp hangs on Alpine container
Busyboxes built with the ENABLE_FEATURE_EDITING_ASK_TERMINAL
config option
also send escape sequences, which tramp-wait-for-output
doesn’t ignore
correctly. This was fixed in TRAMP upstream and is available since TRAMP 2.3.
For older versions of TRAMP you can dump docker-tramp-compat.el in your
load-path
somewhere and add the following to your init.el to overwrite
tramp-wait-for-output
with the patch applied:
6. TODO Appendix
This module has no appendix yet. Write one?