Description
As per vdemeester comment, re-opening moby/moby#35057.
Reason to close was command will return zero even when "docker ps" returns no containers.
If instead docker ps returns ie 1 or not zero when container is not running, it then enables better integration with other tooling:
# Conventional Exit Code Use - ls command on folder exists, not-exists
if [[ $( ls /tmp 2>/dev/null ) ]]; then echo "folder exists"; else echo "folder does not exist"; fi
folder exists
if [[ $( ls /tmpXX 2>/dev/null ) ]]; then echo "folder exists"; else echo "folder does not exist"; fi
folder does not exist
# Docker ps - Less Useful Zero Exit Code
if [[ $( docker ps --filter label=runningimage=no 2>/dev/null ) ]]; then echo "container is running"; else echo "container is not running"; fi
container is running
??? WHY
eg, docker ps - no containers are running
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
....
Another closer example, "pgrep" - listing processes by process matching, clearly explains rationale:
...
-c, --count
Suppress normal output; instead print a count of matching processes. When count does not match anything, e.g. returns zero, the command will return
non-zero value. Note that for pkill and pidwait, the count is the number of matching processes, not the processes that were successfully signaled or
waited for.
Description
As per vdemeester comment, re-opening moby/moby#35057.
Reason to close was command will return zero even when "docker ps" returns no containers.
If instead docker ps returns ie 1 or not zero when container is not running, it then enables better integration with other tooling:
Another closer example, "pgrep" - listing processes by process matching, clearly explains rationale: