# Show container's volumes. # Usage: docker_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. function dc() { docker compose "${@}" } # Docker compose up. # Usage: dcu [SERVICES] function dcu() { docker compose up -d "${@}" } # Docker compose down. # Usage: dcd [SERVICES] function dcd() { docker compose down "${@}" } # Docker compose pull. # Usage: dcp [SERVICES] function dcp() { docker compose pull "${@}" } # Docker compose logs. # Usage: dcl [SERVICES] function dcl() { docker compose logs -f "${@}" } # Docker compose restart. # Usage: dcr [SERVICES] function dcr() { docker compose restart "${@}" } # Docker compose stop. # Usage: dcs [SERVICES] 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 } # Autocomplete with available services. function _dc_services() { _autocomplete "$(docker compose config --services 2> /dev/null)" } # Autocomplete with available container names. 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