mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-23 02:35:38 +01:00
Merge 3d40ae961a into 99b243b9a9
This commit is contained in:
commit
4fb39afe6a
2 changed files with 41 additions and 1 deletions
|
|
@ -77,10 +77,16 @@ If you use Podman's Docker wrapper, you need to enable legacy completion. See ab
|
||||||
| drs | `docker container restart` | Restart one or more containers |
|
| drs | `docker container restart` | Restart one or more containers |
|
||||||
| dsta | `docker stop $(docker ps -q)` | Stop all running containers |
|
| dsta | `docker stop $(docker ps -q)` | Stop all running containers |
|
||||||
| dstp | `docker container stop` | Stop one or more running containers |
|
| dstp | `docker container stop` | Stop one or more running containers |
|
||||||
| dsts | `docker stats` | Display real-time streaming statistics for containers |
|
| dsts | `docker stats` | Display real-time streaming statistics for containers |
|
||||||
| dtop | `docker top` | Display the running processes of a container |
|
| dtop | `docker top` | Display the running processes of a container |
|
||||||
| dvi | `docker volume inspect` | Display detailed information about one or more volumes |
|
| dvi | `docker volume inspect` | Display detailed information about one or more volumes |
|
||||||
| dvls | `docker volume ls` | List all the volumes known to docker |
|
| dvls | `docker volume ls` | List all the volumes known to docker |
|
||||||
| dvprune | `docker volume prune` | Cleanup dangling volumes |
|
| dvprune | `docker volume prune` | Cleanup dangling volumes |
|
||||||
| dxc | `docker container exec` | Run a new command in a running container |
|
| dxc | `docker container exec` | Run a new command in a running container |
|
||||||
| dxcit | `docker container exec -it` | Run a new command in a running container in an interactive shell |
|
| dxcit | `docker container exec -it` | Run a new command in a running container in an interactive shell |
|
||||||
|
|
||||||
|
## Functions
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
| :-------------------------- | :---------------------------------------------------------------------------------------------------- |
|
||||||
|
| `dxgcit <pattern> <cmd...>` | Run a new command in a running container selected via pattern matching on the image or container name |
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,40 @@ alias dvprune='docker volume prune'
|
||||||
alias dxc='docker container exec'
|
alias dxc='docker container exec'
|
||||||
alias dxcit='docker container exec -it'
|
alias dxcit='docker container exec -it'
|
||||||
|
|
||||||
|
function _dxgcit() {
|
||||||
|
if [ $# -lt 2 ]; then
|
||||||
|
echo "Usage: $0 <grep-pattern> <command...>" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local pattern=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
local -a candidates
|
||||||
|
candidates=(
|
||||||
|
${(f)"$(docker ps --format "{{.ID}}:{{.Names}}:{{.Image}}" | grep -- "$pattern")"}
|
||||||
|
)
|
||||||
|
if [ ${#candidates[@]} -eq 0 ]; then
|
||||||
|
printf "No container/image matches name pattern: '%s'!\n" "$pattern" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if [ ${#candidates[@]} -ne 1 ]; then
|
||||||
|
printf "Ambiguous container/image name pattern: '%s' results in '%d' candidates!\n" \
|
||||||
|
"$pattern" "${#candidates[@]}" >&2
|
||||||
|
for candidate in ${candidates[@]}; do
|
||||||
|
parts=(${(@s/:/)candidate})
|
||||||
|
printf " %s (%s) (image: %s)\n" "${parts[1]}" "${parts[2]}" "${parts[3]}" >&2
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local -a candidate
|
||||||
|
candidate=(${(@s/:/)${candidates[1]}})
|
||||||
|
local id="${candidate[1]}"
|
||||||
|
docker container exec -it "$id" "$@"
|
||||||
|
}
|
||||||
|
alias dxgcit='_dxgcit'
|
||||||
|
|
||||||
if (( ! $+commands[docker] )); then
|
if (( ! $+commands[docker] )); then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue