-
Star
(220)
You must be signed in to star a gist -
Fork
(79)
You must be signed in to fork a gist
-
-
Save jgrodziski/9ed4a17709baad10dbcd4530b60dfcbb to your computer and use it in GitHub Desktop.
############################################################################ | |
# # | |
# ------- Useful Docker Aliases -------- # | |
# # | |
# # Installation : # | |
# copy/paste these lines into your .bashrc or .zshrc file or just # | |
# type the following in your current shell to try it out: # | |
# wget -O - https://gist.githubusercontent.com/jgrodziski/9ed4a17709baad10dbcd4530b60dfcbb/raw/d84ef1741c59e7ab07fb055a70df1830584c6c18/docker-aliases.sh | bash | |
# # | |
# # Usage: # | |
# daws <svc> <cmd> <opts> : aws cli in docker with <svc> <cmd> <opts> # | |
# dc : docker compose # | |
# dcu : docker compose up -d # | |
# dcd : docker compose down # | |
# dcr : docker compose run # | |
# dex <container>: execute a bash shell inside the RUNNING <container> # | |
# di <container> : docker inspect <container> # | |
# dim : docker images # | |
# dip : IP addresses of all running containers # | |
# dl <container> : docker logs -f <container> # | |
# dnames : names of all running containers # | |
# dps : docker ps # | |
# dpsa : docker ps -a # | |
# drmc : remove all exited containers # | |
# drmid : remove all dangling images # | |
# drun <image> : execute a bash shell in NEW container from <image> # | |
# dsr <container>: stop then remove <container> # | |
# # | |
############################################################################ | |
function dnames-fn { | |
for ID in `docker ps | awk '{print $1}' | grep -v 'CONTAINER'` | |
do | |
docker inspect $ID | grep Name | head -1 | awk '{print $2}' | sed 's/,//g' | sed 's%/%%g' | sed 's/"//g' | |
done | |
} | |
function dip-fn { | |
echo "IP addresses of all named running containers" | |
for DOC in `dnames-fn` | |
do | |
IP=`docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}' "$DOC"` | |
OUT+=$DOC'\t'$IP'\n' | |
done | |
echo -e $OUT | column -t | |
unset OUT | |
} | |
function dex-fn { | |
docker exec -it $1 ${2:-bash} | |
} | |
function di-fn { | |
docker inspect $1 | |
} | |
function dl-fn { | |
docker logs -f $1 | |
} | |
function drun-fn { | |
docker run -it $1 $2 | |
} | |
function dcr-fn { | |
docker compose run $@ | |
} | |
function dsr-fn { | |
docker stop $1;docker rm $1 | |
} | |
function drmc-fn { | |
docker rm $(docker ps --all -q -f status=exited) | |
} | |
function drmid-fn { | |
imgs=$(docker images -q -f dangling=true) | |
[ ! -z "$imgs" ] && docker rmi "$imgs" || echo "no dangling images." | |
} | |
# in order to do things like dex $(dlab label) sh | |
function dlab { | |
docker ps --filter="label=$1" --format="{{.ID}}" | |
} | |
function dc-fn { | |
docker compose $* | |
} | |
function d-aws-cli-fn { | |
docker run \ | |
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ | |
-e AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION \ | |
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \ | |
amazon/aws-cli:latest $1 $2 $3 | |
} | |
alias daws=d-aws-cli-fn | |
alias dc=dc-fn | |
alias dcu="docker compose up -d" | |
alias dcd="docker compose down" | |
alias dcr=dcr-fn | |
alias dex=dex-fn | |
alias di=di-fn | |
alias dim="docker images" | |
alias dip=dip-fn | |
alias dl=dl-fn | |
alias dnames=dnames-fn | |
alias dps="docker ps" | |
alias dpsa="docker ps -a" | |
alias drmc=drmc-fn | |
alias drmid=drmid-fn | |
alias drun=drun-fn | |
alias dsp="docker system prune --all" | |
alias dsr=dsr-fn |
I see that this gist still uses docker-compose
cmd line instead of docker compose
, which I believe the lather is what is used now for docker. Should this gist be updated to reflect that?
@j-antunes thanks, yes I updated the gist with docker compose
instead of docker-compose
Hello, I edited and try your snippet, it is cool I add shortcut I love to use
# dbash <container>: run a bash shell into a given container #
# dsh <container>: run a sh shell into a given container #
function dbash-fn {
docker exec -it $(docker ps -aqf "name=$1") bash;
}
function dsh-fn {
docker exec -it $(docker ps -aqf "name=$1") sh;
}
alias dbash=dbash-fn
alias dsh=dsh-fn
Nice, thanks !
Some were the exact aliases I've been using for years on my own.
With two extras :
alias dcl='docker compose logs -f'
to display logs for a particular compose file.
and
function dupdate() {
docker compose pull && docker compose build --no-cache
}
to update docker compose containers.
I don't get the use of aliases pointing to functions instead of giving the function the direct alias name ?
like so :
function drmid {
imgs=$(docker images -q -f dangling=true)
[ ! -z "$imgs" ] && docker rmi "$imgs" || echo "no dangling images."
}
and also why this kind of complicate things :
function dc-fn {
docker compose $*
}
alias dc=dc-fn
instead of simply :
alias dc='docker compose'
There might be some reasons I don't get since I only use bash e.g. ?
Thanks all for submitting your aliases - useful stuff.
I am fond of Git's approach to aliases so I am using something like the below to achieve something similar for arbitrary CLI tools. Maybe someone will find it useful.