#!/bin/bash human_bytes() { b="$1" if [ "$b" = "0" ] || [ -z "$b" ]; then echo "unlimited" return fi mib=$((b / 1024 / 1024)) if [ "$mib" -ge 1024 ]; then gib=$((mib / 1024)) echo "${gib}GiB" else echo "${mib}MiB" fi } printf "%-28s %-10s %-10s %-10s %-6s\n" "CONTAINER" "MEM" "SWAP" "STATUS" "OOM" printf "%-28s %-10s %-10s %-10s %-6s\n" "---------" "---" "----" "------" "---" for c in $(docker ps -aq); do name=$(docker inspect -f '{{.Name}}' "$c" 2>/dev/null | sed 's#^/##') mem=$(docker inspect -f '{{.HostConfig.Memory}}' "$c" 2>/dev/null) swap=$(docker inspect -f '{{.HostConfig.MemorySwap}}' "$c" 2>/dev/null) status=$(docker inspect -f '{{.State.Status}}' "$c" 2>/dev/null) oom=$(docker inspect -f '{{.State.OOMKilled}}' "$c" 2>/dev/null) printf "%-28s %-10s %-10s %-10s %-6s\n" \ "$name" "$(human_bytes "$mem")" "$(human_bytes "$swap")" "$status" "$oom" done