-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdocker-helpers.plugin.zsh
124 lines (100 loc) · 2.89 KB
/
docker-helpers.plugin.zsh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# Copyright 2014-2022 Joseph Block <jpb@unixorn.net>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if (which docker &> /dev/null)
then
# Add our plugin's bin diretory to user's path
PLUGIN_D="$(dirname $0)"
export PATH=${PATH}:${PLUGIN_D}/bin
alias d='docker'
# Most of these aliases are from http://www.kartar.net/2014/03/some-useful-docker-bash-functions-and-aliases/
alias dkd='docker run -d -P'
alias dki='docker run -t -i -P'
alias dkl='docker ps -l -q'
alias docker-daemonize='docker run -d -P'
alias docker-interactive='docker run -t -i -P'
alias docker-last='docker ps -l -q'
alias dockerbuild='docker build'
alias dockerimages='docker images'
alias dockerps='docker ps'
d-ip() {
docker inspect --format "{{ .NetworkSettings.IPAddress }}" $1
}
dkb() {
docker build -t="$1" .
}
d-grep() {
docker ps | grep $@ | grep -v ^CONTAINER
}
d-kill-pattern() {
docker ps \
| grep $@ \
| grep -v ^CONTAINER \
| awk '{print $1}' \
| xargs -rI % bash -c 'echo $(docker kill %; echo "killed!");'
}
d-pid() {
docker inspect --format "{{ .State.Pid }}" $1
}
d-purge() {
docker rm $(docker ps -a -q);
}
d-stats() {
docker ps -q | xargs docker stats
}
d-stop() {
# Stop all running containers
docker stop $(docker ps -a -q);
}
d-zsh() {
local TAG=$1
docker run -v /tmp:/host_tmp:rw -i -t $TAG /bin/zsh
}
dps-monitor() {
while true
do
clear
docker ps | cut -c -$(tput cols)
sleep 0.5
done
}
# helpers for starting a container with access to the current directory
d-alpine() {
docker run -v $(pwd):/shared --rm -it alpine:latest /bin/sh
}
d-busybox() {
docker run -v $(pwd):/shared --rm -it busybox:latest /bin/sh
}
d-debian() {
docker run -v $(pwd):/shared --rm -it debian:latest /bin/bash
}
d-centos() {
docker run -v $(pwd):/shared --rm -it centos:centos7 /bin/bash
}
d-centos6() {
docker run -v $(pwd):/shared --rm -it centos:centos6 /bin/bash
}
d-fedora() {
docker run -v $(pwd):/shared --rm -it fedora:20 /bin/bash
}
d-ubuntu() {
docker run -v $(pwd):/shared --rm -it ubuntu:14.04 /bin/bash
}
fi
if (which docker-compose &> /dev/null)
then
alias d-cp=docker-compose
fi
function docker-tags(){
curl -s -S "https://registry.hub.docker.com/v2/repositories/$@/tags/" | jq '."results"[]["name"]' |sort
}