Skip to content

Instantly share code, notes, and snippets.

@ioggstream
Created January 17, 2025 11:17
Show Gist options
  • Save ioggstream/8338e988ac38f5a3a1bcc4c7da8afbf2 to your computer and use it in GitHub Desktop.
Save ioggstream/8338e988ac38f5a3a1bcc4c7da8afbf2 to your computer and use it in GitHub Desktop.
#
# Useful aliases for docker to be placed in /etc/profile.d
#
dip(){
# Show docker ips
local arg=${1}
if [ -z "$arg" ]; then
arg=$(docker ps -q)
fi
docker inspect --format ' {{.Name}} {{.NetworkSettings.IPAddress}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $arg
}
#
# Docker Exec alias with auto-complete
#
dshell(){
local container="${1##/}"
local command="${2:-/bin/bash}"
docker exec -ti "$container" "$command" || \
docker compose exec -ti "$container" "$command"
}
_dshell()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="$(docker inspect -f '{{.Name}}' $(docker ps -q))"
opts=${opts//\/}
if [[ ${cur} =~ [a-z]+ ]]; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -F _dshell dshell
#
# Run a given docker image with a sh entrypoint
#
drun(){
local last_argument="${@:$#}"
echo Executing: docker run -ti "${@:1:$#}" --entrypoint /bin/sh $last_argument
docker run -ti "${@:1:$#-1}" --entrypoint /bin/sh $last_argument
}
dcode(){
local last_argument="${@:$#}"
echo Executing: docker run -ti -v $PWD:/code "${@:1:$#}" --entrypoint /bin/sh $last_argument
docker run -ti "${@:1:$#-1}" -w /code -v $PWD:/code --entrypoint /bin/sh $last_argument
}
dgui(){
local last_argument="${@:$#}"
GUI_ARGS="-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -h $HOSTNAME -v $HOME/.Xauthority:/.Xauthority --user $UID:$UID"
echo Executing: docker run -ti "${@:1:$#}" --entrypoint /bin/sh $last_argument
docker run -ti $GUI_ARGS "${@:1:$#-1}" --entrypoint /bin/sh $last_argument
}
#
# List network bridges
#
dnets(){
local arg=${1}
if [ -z "$arg" ]; then
arg=$(docker network ls -q)
fi
docker network inspect --format '{{.Name}} {{range .IPAM.Config}}{{.Subnet}}{{end}}' $arg
}
dhown(){
# Set docker permissions and context to the current directory
sudo chcon -Rt svirt_sandbox_file_t "$@"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment