# show container's volumes. function docker_volumes() { docker inspect -f '{{ .Mounts }}' "${@}" } # Check if any container exited. function docker_health() { docker ps -a | grep Exited } # prune everything. function docker_prune() { docker system prune --volumes --all } # Docker compose shortcut. # Usage: dc [SERVICE] function dc() { docker compose "${@}" } # Docker compose up. function dcu() { docker compose up -d "${@}" } # Docker compose down. function dcd() { docker compose down "${@}" } # Docker compose pull. function dcp() { docker compose pull "${@}" } # Docker compose logs. function dcl() { docker compose logs -f "${@}" } # Docker compose restart. function dcr() { docker compose restart "${@}" } # Docker compose stop. function dcs() { docker compose stop "${@}" } # Docker compose down & up specified services. # Usage: dcdu [SERVICES] function dcdu() { dcd "${@}" dcu "${@}" } # Docker compose pull & up specified services. # Usage: dcpu [SERVICES] function dcpu() { dcp "${@}" dcu "${@}" } # Docker compose up & attach to logs for specified services. # Usage: dcul [SERVICES] function dcul() { dcu "${@}" && dcl "${@}" } # Find out container's IP address. # Usage: docker_up function docker_ip() { docker inspect -f '\''{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'\' "${1}" | sed "s/^.//" | sed "s/.$//" } # Update all docker images. function docker_update() { docker images --format "{{.Repository}}:{{.Tag}}" | xargs -L1 docker pull } function _dc_services() { _autocomplete "$(docker compose config --services 2> /dev/null)" } function _dc_containers() { _autocomplete "$(docker ps --format "\""{{.Names}}"\"")" } complete -F _dc_services dcu dcd dcp dcl dcul dcdu dcr dcs dcpu complete -F _dc_containers docker_volumes docker_ip