Docker exposes formatting for most commands using Go templates so that it is possible to programmatically refine/format results of docker commands.
Lets explore some use cases.
docker ps --format '{{ if eq (js $.Image ) "<image_name>"}} \
{{ .ID }} {{ else }} --- {{ end }}'
(Peeps running docker without docker-machine or boot2docker will find this very helpful)
docker inspect --format '{{ json (index \
.NetworkSettings.Ports "8080/tcp" 0 "HostIp") }}' <container_id>
docker ps --format "{{ .ID }}"