Last active
April 7, 2025 15:56
-
-
Save GottZ/4a6c2af314d73cd8b71d to your computer and use it in GitHub Desktop.
/etc/profile.d/dps.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Docker PS prettifier | |
# revision 6 | |
# https://gist.github.com/GottZ/4a6c2af314d73cd8b71d | |
dps() { | |
docker ps $@ --format "table{{ .Image }}\\t{{ .Names }}\\t{{ .Status }}\\t{{ .Ports }}" | awk ' | |
NR % 2 == 0 { | |
printf "\033[0m"; | |
} | |
NR % 2 == 1 { | |
printf "\033[1m"; | |
} | |
NR == 1 { | |
PORTSPOS = index($0, "PORTS"); | |
PORTS = "PORTS"; | |
PORTSPADDING = "\n"; | |
for(n = 1; n < PORTSPOS; n++) | |
PORTSPADDING = PORTSPADDING " "; | |
} | |
NR > 1 { | |
PORTS = substr($0, PORTSPOS); | |
gsub(/, /, PORTSPADDING, PORTS); | |
} | |
{ | |
printf "%s%s\n", substr($0, 0, PORTSPOS - 1), PORTS; | |
} | |
END { | |
printf "\033[0m"; | |
} | |
' | |
} | |
dpsa() { dps -a $@; } |
Just found this. I have something similar where my focus is just to reduce the columns and sort the results by name.
docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}" \
| awk 'NR == 1; NR > 1 { print $0 | "sort" }'
Recently had encountered multiple port bindings for a container so just piped my result to your awk script. Thanks!
Following on from @lemonkoala's lead I wrote a small bash script to do the messy stuff. It takes a list of options (e.g. -iIcClmnNprSshL), constructs the go string and invokes the docker ps with it. In case its useful to anyone its here:
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
adding this to my dotfiles, thanks @GottZ