-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathdocker.al
More file actions
202 lines (184 loc) · 4.78 KB
/
Copy pathdocker.al
File metadata and controls
202 lines (184 loc) · 4.78 KB
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
#!/bin/sh
## Function list
# Docker
#
## TODO
##
# ddl=grep docker /var/log/messages
# user --user=$(id -u)
alias dk='docker'
alias dr='dk run'
# run single command
alias drc='dr --rm'
alias drp='drc -d -v `pwd`:"/`basename $(pwd)`" -w "/`basename $(pwd)`"'
alias drph='drp -v $HOME:"/root/"'
# run as shell
alias dri='drc -it'
alias drip='dri -v `pwd`:"/`basename $(pwd)`" -w "/`basename $(pwd)`"'
alias dripf='dri -v `pwd`:`pwd` -w `pwd`'
dre(){ drc -it --entrypoint '/bin/sh' ${@:1} ;}
drep(){ drip -it --entrypoint '/bin/sh' ${@:1} ;}
drb(){ dri ${@:1} /bin/bash ;}
drbp(){ drip ${@:1} /bin/bash ;}
drbf(){ dripf ${@:1} /bin/bash ;}
drbph(){ drip -v ${HOME}:/root ${@:1} /bin/bash ;}
dhb(){ drbph ${@:1} ;}
dhd(){ drph ${@:1} ;}
dh(){ drip -v ${HOME}:/root ${@:1} ;}
dhe(){
if [[ ${@: -1} == "@" ]]; then
dhb ${@:1:($#-2)}
elif [[ ${@: -1} == "@@" ]]; then
dh --entrypoint '/bin/sh' ${@:1:($#-2)}
else
dh ${@:1}
fi
}
# exec
drd(){ dr -d ${@:1} ;}
drcd(){ drc -d ${@:1} ;}
alias da='dk attach'
alias dst='dk stop'
alias dsta='dk stop $(dk ps -a -q)'
alias drst='dk restart'
alias dkk='dk kill'
dx(){
# [ -z "$1" ] && args=`dc -q` || args=${@:1}
dk exec -it `dc -q` ${@:1}
}
dxb(){ dx /bin/bash ;}
dcd(){ docker-compose ${@:1} down ;}
dcb(){ docker-compose build ${@:1} ;}
dcr(){ docker-compose run --rm ${@:1} ;}
dcrn(){ docker-compose run --rm -T --service-ports ${@:1} ;}
dcst(){ docker-compose stop ${@:1} ;}
dcrb(){ docker-compose run --rm ${@:1} /bin/bash ;}
dcrbn(){ dcrn ${@:1} /bin/bash ;}
dcrs(){ docker-compose restart ${@:1} ;}
dck(){ docker-compose kill ${@:1} && docker-compose rm -f ${@:1} ;}
dcl(){ docker-compose logs -f ${@:1} ;}
dcu(){ docker-compose ${@:1} up ;}
dcud(){ docker-compose ${@:1} up -d ;}
dcprm(){ docker-compose rm ${@:1} ;}
dcx(){ docker-compose exec ${@:1} ;}
dcxb(){ docker-compose exec ${@:1} /bin/bash ;}
dcs(){ docker-compose scale ${@:1} ;}
dcul(){ dcd && dcud && dcl ;}
# building
alias dt='dk tag'
alias dhub='dk search'
alias dp='dk push'
alias dku='dk pull'
alias dcm='dk commit'
db(){
if [ -z $2 ]; then
dk build -t $1 .
elif [ -z $3 ]; then
dk build -t $1 -f $2 .
else
dk build -t ${@:1}
fi
}
# cleanup
drmc(){ dk rm ${@:1} ;}
alias drmca='dk rm $(dk ps -a -q)'
alias drmi='dk rmi'
#todo docker rmi -f $(docker images -q -a -f dangling=true)
dic(){ drmi $(di | grep '<none>' | awk '{print $3}') ;}
# copy
dcp(){
id=$1
src=$2
dst=$3
[ -z "$2" ] && { echo 'usage: dcpi container_id src dest'; return;}
[ -z "${dst}" ] && dst=`basename $src`
docker cp ${id}:${src} ${dst}
}
dcpi(){
img=$1
src=$2
dst=$3
[ -z "$2" ] && { echo 'usage: dcpi image src dest'; return;}
[ -z "${dst}" ] && dst=`basename $src`
id=$(docker create ${img})
docker cp -L ${id}:${src} ${dst}
docker rm ${id}
}
# volumes
alias dv='dk volume ls'
alias dvd='dv -f dangling=true'
alias dvc='dk volume create --name'
alias drmv='dk volume rm'
alias drmva='drmv $(dv -q)'
alias drmvd='drmv $(dvd -q)'
# monitoring
alias di='dk images'
alias dc='dk ps -a'
alias dl='dk logs'
alias dlf='dk logs -f'
alias dki='dk inspect'
alias ds='dk stats'
alias dstats='dk stats --all'
alias dtop='dk top'
alias dport='dk ports'
alias ddiff='dk diff'
# networking
alias dn='dk network ls'
alias drmn='dk network rm'
alias drmna='drmn `dn -q`'
alias dni='dk network inspect'
# machine
alias dm='docker-machine'
alias dmc='dm create'
dmcg(){
host=$1
[ -z "$2" ] && user="root" || user=$2
[ -z "$3" ] && key="~/.ssh/id_rsa" || key=$3
dmc --driver generic \
--generic-ssh-user ${user} \
--generic-ip-address ${host} \
--generic-ssh-key ${key} \
${@:3}
}
# registry
alias dsearch='dk search'
# TODO
#dtsearch(){ curl "https://hub.docker.com/v2/$1/tags/list" }
# docker hub
hubsearch(){
open "https://hub.docker.com/search/?q=$1&isAutomated=0&isOfficial=0&page=1&pullCount=0&starCount=0"
}
hubtags(){
[[ "$1" == *"/"* ]] && repo=$1 || repo="library/$1"
open "https://hub.docker.com/r/${repo}/tags/"
}
# import/export
diexport(){
echo "${$1/\\//.}"
#docker save -o "${$1/\//.}" $1
}
#TODO: alias for image removal from registry
#curl -u<user:password> -X DELETE "<Artifactory URL>/<Docker v2 repository name>/<namespace>:<tag>"
# cp to rc if behind a proxy for higher-level tools like docker compose
# proxy_ip="<PROXY>:<PORT>"
# build_proxy_args="--build-arg http_proxy=http://$proxy_ip \
# --build-arg https_proxy=https://$proxy_ip \
# --build-arg HTTP_PROXY=http://$proxy_ip \
# --build-arg HTTPS_PROXY=https://$proxy_ip"
# function docker {
# if [[ "$1" = "build" ]]; then
# command docker build $build_proxy_args "${@:2}"
# else
# command docker "${@:1}"
# fi
# }
# start script for init.d/systemd container apps
# (){
# name=$1
# empty=`docker ps -a -f "name=${name}" | grep -w ${name}`
# if [[ -z "${empty}" ]]; then
# echo "docker run --name ${name} ..."
# else
# echo "docker start ..."
# fi
# }