#!/bin/bash # From: https://gist.github.com/ipedrazas/2c93f6e74737d1f8a791?permalink_comment_id=3704504#gistcomment-3704504 function dip() { local cols='%-13s %-48s %-40s %-80s' _print_container_info() { local container_id local container_ports local container_ip local container_name container_id="${1}" container_ports=( $(docker port "$container_id" | grep -o "0.0.0.0:.*" | cut -f2 -d:) ) container_name="$(docker inspect --format "{{ .Name }}" "$container_id" | sed 's/\///')" container_ip="$(docker inspect --format "{{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}" "$container_id" )" printf "$cols\n" "$container_id" "$container_name" "$container_ip" "${container_ports[*]}" } local container_id container_id="$1" printf "$cols\n" 'Container Id' 'Container Name' 'Container IP' 'Container Ports' if [ -z "$container_id" ]; then local container_id docker ps -a --format "{{.ID}}" | while read -r container_id ; do _print_container_info "$container_id" done else _print_container_info "$container_id" fi } dip