docker-inspect

command module
v0.0.0-...-0c7300c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 28, 2016 License: MIT Imports: 6 Imported by: 0

README

docker-inspect

A small Go app that displays useful info about any local docker images, containers, and env.

A lot of the motivation for the images tree view is because of the deprecation of the docker images --tree command and because I wanted to play around with the go-dockerclient

Steps to install

  1. Make sure go is installed on your machine
  2. Make sure godep is installed on your machine to manage dependecies
  3. Download docker-inspect source
  4. Navigate to the docker-inspect directory and run godep save ./... and godep save -r
  5. Navigate to docker-inspect directory and run go install to put docker-inspect binary into your $GOPATH/bin
  6. I suggest putting your $GOPATH/bin into your $PATH with export PATH=$PATH:$GOPATH/bin
  7. If you followed step 4 then the command docker-inspect is now in your path and can be run anywhere with docker-inspect

Note this currently only works with a docker-machine environment. See docker-machine for more info.

Usage

Commands
docker-inspect help
# can also do `docker-inspect`, `docker-inspect -h`, or `docker-inspect help`
$ docker-inspect --help
NAME:
   docker-inspect - get some info on any docker images, containers, and env

USAGE:
   docker-inspect [global options] command [command options] [arguments...]

VERSION:
   0.0.1

COMMANDS:
   images, i		view any docker images
   containers, c	view any docker containers running with docker-machine
   help, h		Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h		show help
   --version, -v	print the version
docker-inspect --version
# can also do `docker-inspect -v` or `docker-inspect --v`
$ docker-inspect --version
docker-inspect version 0.0.1
docker-inspect images
$ docker-inspect images --help
NAME:
   docker-inspect images - view any docker images

USAGE:
   docker-inspect images [command options] [arguments...]

OPTIONS:
   --verbose, --verb 	if true show all (labeled and unlabeled) images, if false show only labeled images, true by default
   --truncate-id, --ti 	if true truncates the image id to just the first 12 characters, if false then shows entire id. true by default
   --accumulate, --acc 	if true accumulates the each image's size in tree view, if false then it shows each image's individual size, false by default
$ docker-inspect images
├─ 9ee13ca3b908 -- Virtual Size: 125.1 MB
│ └─ 23cb15b0fcec -- Virtual Size: 0.0 B
│   └─ 5e5f21412e19 -- Virtual Size: 44.3 MB
│     └─ df82ac64861d -- Virtual Size: 122.2 MB
│       └─ 6a84d4eff4c4 -- Virtual Size: 134.0 MB
│         └─ f204abcb3569 -- Virtual Size: 0.0 B
│           └─ f2d7651c6d8a -- Virtual Size: 0.0 B
│             └─ 50386c55167d -- Virtual Size: 0.0 B
│               └─ feb3148492d4 -- Virtual Size: 278.2 MB
│                 └─ 6a6f1b05ca25 -- Virtual Size: 0.0 B
│                   └─ a81e9c53fc51 -- Virtual Size: 0.0 B
│                     └─ 58cc81e0c7ad -- Virtual Size: 0.0 B
│                       └─ 93f4c5ebe1a3 -- Virtual Size: 0.0 B
│                         └─ 08ff0c215f8f -- Virtual Size: 2.5 KB Tags: golang:latest
├─ a719479f5894 -- Virtual Size: 125.1 MB
│ └─ 91bac885982d -- Virtual Size: 0.0 B
│   ├─ 3df5aff384fc -- Virtual Size: 0.0 B
│   │ └─ 4f3dc531a45a -- Virtual Size: 2.0 KB
│   │   └─ 687dd94c3fd3 -- Virtual Size: 221.0 B
│   │     └─ dd6bbcfbe827 -- Virtual Size: 0.0 B
│   │       └─ 5ba2077eefe2 -- Virtual Size: 7.7 MB
│   │         └─ f61f6b8f8a52 -- Virtual Size: 11.0 B
│   │           └─ 7eccb4b78817 -- Virtual Size: 11.0 B
│   │             └─ 22e963aa9f34 -- Virtual Size: 0.0 B
│   │               └─ ca1f5f48ef43 -- Virtual Size: 0.0 B
│   │                 └─ 8d5e6665a7a6 -- Virtual Size: 0.0 B Tags: nginx:latest
$ docker-inspect images --verbose=false
├─ 9ee13ca3b908 -- Virtual Size: 125.1 MB
│ └─ 08ff0c215f8f -- Virtual Size: 2.5 KB Tags: golang:latest
├─ a719479f5894 -- Virtual Size: 125.1 MB
│ └─ 91bac885982d -- Virtual Size: 0.0 B
│   ├─ 8d5e6665a7a6 -- Virtual Size: 0.0 B Tags: nginx:latest
$ docker-inspect images --truncate-id=false
├─ 9ee13ca3b908aacceeb9eb6a3028d4566aa997ffc90915d55578a487f058e935 -- Virtual Size: 125.1 MB
│ └─ 23cb15b0fcece0623d706e9dbc3d9fce97937fb50ab3fbff8574206d258b6303 -- Virtual Size: 0.0 B
│   └─ 5e5f21412e197751f63ce12e40459cba6cdc2a1330c63f106f19a7292599985c -- Virtual Size: 44.3 MB
│     └─ df82ac64861d951d10f479113098db9e78f9778cc83bc5d87fb3cd04424045d2 -- Virtual Size: 122.2 MB
│       └─ 6a84d4eff4c4e1214f79b7b7cd3e006f36dab3a66067a67dc43fe120330f85b0 -- Virtual Size: 134.0 MB
│         └─ f204abcb356959ffaaac4d2b5c9e6000053d768cccab77f643f4c5d87f76f3a9 -- Virtual Size: 0.0 B
│           └─ f2d7651c6d8a15eef8f08c7874fa2fa37e3a7ef800b04b417ba8708eaa608ccf -- Virtual Size: 0.0 B
│             └─ 50386c55167d14312d0ed81cf9f0fa2588461be098b2cd360c15fe3f120e2f75 -- Virtual Size: 0.0 B
│               └─ feb3148492d4bd41caabfe87ba6733c07bf060f573a084b32c3acd59b89ab1c9 -- Virtual Size: 278.2 MB
│                 └─ 6a6f1b05ca254c23cd3b573180fe3c6d33c05281a1f3733bb35fffc6a6d36ecd -- Virtual Size: 0.0 B
│                   └─ a81e9c53fc519488bf6227529bb006cd1aa1ff1ccf2d4e0f4e06e5395e54ec44 -- Virtual Size: 0.0 B
│                     └─ 58cc81e0c7ad5e2ec98b17eb5357a18e63a9092c0fa6db07a95aea45629793bb -- Virtual Size: 0.0 B
│                       └─ 93f4c5ebe1a31b0b98e3adaaee51888f17fee08ab4b3e009143cb970217d562e -- Virtual Size: 0.0 B
│                         └─ 08ff0c215f8fec13c49ffe7034254f8c617c25ca5be8907a66f38f5401bc109a -- Virtual Size: 2.5 KB Tags: golang:latest
├─ a719479f5894e94befa7b0a678f52b0e65c4cfa055eb14c1d219d2b6d3acf574 -- Virtual Size: 125.1 MB
│ └─ 91bac885982d483318e92036e26574e0c329d0d52299fe47462c12c5e554eb67 -- Virtual Size: 0.0 B
│   ├─ 3df5aff384fc7c76136fce7548e315bee24dac2cee42678f5b30d168e1c927a3 -- Virtual Size: 0.0 B
│   │ └─ 4f3dc531a45ab2f90e542340293e706a51ddfabae923f460b170fe42fd5a7d48 -- Virtual Size: 2.0 KB
│   │   └─ 687dd94c3fd349e8f1e16acdee0c5122317f4d931c3248ccdf5073926a7744fa -- Virtual Size: 221.0 B
│   │     └─ dd6bbcfbe827ea18495d53a2ec1d72be77be42a3a7b56111aa4d3c0164bbe313 -- Virtual Size: 0.0 B
│   │       └─ 5ba2077eefe21b926b35f83d6cd473366a3f5872781aa160ad281b6c7351da98 -- Virtual Size: 7.7 MB
│   │         └─ f61f6b8f8a5280508962d8417414b313463b0f12eeb4501839361aa5bbcecf02 -- Virtual Size: 11.0 B
│   │           └─ 7eccb4b788170aebbcb2ee4c28abee9fa10580e483747866164130a10ec07151 -- Virtual Size: 11.0 B
│   │             └─ 22e963aa9f34b18dfd5108ea14676ba41103e6f95aa005e298f0d4ecbf62b5be -- Virtual Size: 0.0 B
│   │               └─ ca1f5f48ef43d72726dda945ff6ade7b9c1c12ce6329a7be7a3c1a23f8703c97 -- Virtual Size: 0.0 B
│   │                 └─ 8d5e6665a7a6e3e38929d737206f6e4bf20574bfe696d1bc30bf572034bf81de -- Virtual Size: 0.0 B Tags: nginx:latest
$ docker-inspect images --accumulate=true
├─ 9ee13ca3b908 -- Virtual Size: 125.1 MB
│ └─ 23cb15b0fcec -- Virtual Size: 125.1 MB
│   └─ 5e5f21412e19 -- Virtual Size: 169.4 MB
│     └─ df82ac64861d -- Virtual Size: 291.7 MB
│       └─ 6a84d4eff4c4 -- Virtual Size: 425.7 MB
│         └─ f204abcb3569 -- Virtual Size: 425.7 MB
│           └─ f2d7651c6d8a -- Virtual Size: 425.7 MB
│             └─ 50386c55167d -- Virtual Size: 425.7 MB
│               └─ feb3148492d4 -- Virtual Size: 703.8 MB
│                 └─ 6a6f1b05ca25 -- Virtual Size: 703.8 MB
│                   └─ a81e9c53fc51 -- Virtual Size: 703.8 MB
│                     └─ 58cc81e0c7ad -- Virtual Size: 703.8 MB
│                       └─ 93f4c5ebe1a3 -- Virtual Size: 703.8 MB
│                         └─ 08ff0c215f8f -- Virtual Size: 703.8 MB Tags: golang:latest
├─ a719479f5894 -- Virtual Size: 125.1 MB
│ └─ 91bac885982d -- Virtual Size: 125.1 MB
│   ├─ 3df5aff384fc -- Virtual Size: 125.1 MB
│   │ └─ 4f3dc531a45a -- Virtual Size: 125.1 MB
│   │   └─ 687dd94c3fd3 -- Virtual Size: 125.1 MB
│   │     └─ dd6bbcfbe827 -- Virtual Size: 125.1 MB
│   │       └─ 5ba2077eefe2 -- Virtual Size: 132.8 MB
│   │         └─ f61f6b8f8a52 -- Virtual Size: 132.8 MB
│   │           └─ 7eccb4b78817 -- Virtual Size: 132.8 MB
│   │             └─ 22e963aa9f34 -- Virtual Size: 132.8 MB
│   │               └─ ca1f5f48ef43 -- Virtual Size: 132.8 MB
│   │                 └─ 8d5e6665a7a6 -- Virtual Size: 132.8 MB Tags: nginx:latest
$ docker-inspect images --accumulate=true --verbose=false
├─ 9ee13ca3b908 -- Virtual Size: 125.1 MB
│ └─ 08ff0c215f8f -- Virtual Size: 703.8 MB Tags: golang:latest
├─ a719479f5894 -- Virtual Size: 125.1 MB
│ └─ 91bac885982d -- Virtual Size: 125.1 MB
│   ├─ 8d5e6665a7a6 -- Virtual Size: 132.8 MB Tags: nginx:latest
$ docker-inspect images --accumulate=true --verbose=false --truncate-id=false
├─ 9ee13ca3b908aacceeb9eb6a3028d4566aa997ffc90915d55578a487f058e935 -- Virtual Size: 125.1 MB
│ └─ 08ff0c215f8fec13c49ffe7034254f8c617c25ca5be8907a66f38f5401bc109a -- Virtual Size: 703.8 MB Tags: golang:latest
├─ a719479f5894e94befa7b0a678f52b0e65c4cfa055eb14c1d219d2b6d3acf574 -- Virtual Size: 125.1 MB
│ └─ 91bac885982d483318e92036e26574e0c329d0d52299fe47462c12c5e554eb67 -- Virtual Size: 125.1 MB
│   ├─ 8d5e6665a7a6e3e38929d737206f6e4bf20574bfe696d1bc30bf572034bf81de -- Virtual Size: 132.8 MB Tags: nginx:latest
# view tree for a single image by its name. All previous cli flags work the same
$ docker-inspect images nginx
└─ a719479f5894 -- Virtual Size: 125.1 MB
  └─ 91bac885982d -- Virtual Size: 0.0 B
    └─ 3df5aff384fc -- Virtual Size: 0.0 B
      └─ 4f3dc531a45a -- Virtual Size: 2.0 KB
        └─ 687dd94c3fd3 -- Virtual Size: 221.0 B
          └─ dd6bbcfbe827 -- Virtual Size: 0.0 B
            └─ 5ba2077eefe2 -- Virtual Size: 7.7 MB
              └─ f61f6b8f8a52 -- Virtual Size: 11.0 B
                └─ 7eccb4b78817 -- Virtual Size: 11.0 B
                  └─ 22e963aa9f34 -- Virtual Size: 0.0 B
                    └─ ca1f5f48ef43 -- Virtual Size: 0.0 B
                      └─ 8d5e6665a7a6 -- Virtual Size: 0.0 B Tags: nginx:latest
docker-inspect containers
$ docker-inspect containers
----------------------------------------------------------------------------------
ID:  7fb2cfbbd6dd
Image:  $IMAGE_NAME_HERE
Names:  [$CONTAINER_NAME_HERE]
Ports:

├───── IP:
├───── Type:  tcp
├───── PrivatePort:  443
├───── PublicPort:  0

├───── IP:  0.0.0.0
├───── Type:  tcp
├───── PrivatePort:  80
├───── PublicPort:  32887

Created:  1448893527
Status:  Up 22 hours
Command:  /usr/local/bin/run.sh
SizeRw:  0
SizeRootFs:  0
----------------------------------------------------------------------------------

----------------------------------------------------------------------------------
ID:  3810a29369ee
Image:  $IMAGE_NAME_HERE
Names:  [$CONTAINER_NAME_HERE]
Ports:

Created:  1448893496
Status:  Exited (137) 22 hours ago
Command:  /usr/local/bin/start.sh
SizeRw:  0
SizeRootFs:  0
----------------------------------------------------------------------------------
$ docker-inspect containers --truncate-id=false
----------------------------------------------------------------------------------
ID:  7fb2cfbbd6dd1d69ee8002e1d746285bb4144ed58d44b1315603835459bfeb3f
Image:  $IMAGE_NAME_HERE
Names:  [$CONTAINER_NAME_HERE]
Ports:

├───── IP:
├───── Type:  tcp
├───── PrivatePort:  443
├───── PublicPort:  0

├───── IP:  0.0.0.0
├───── Type:  tcp
├───── PrivatePort:  80
├───── PublicPort:  32887

Created:  1448893527
Status:  Up 22 hours
Command:  /usr/local/bin/run.sh
SizeRw:  0
SizeRootFs:  0
----------------------------------------------------------------------------------

----------------------------------------------------------------------------------
ID:  3810a29369eee95ef1ea0aa02b9be66c818731c67e068278180fc46fe5bb716d
Image:  $IMAGE_NAME_HERE
Names:  [$CONTAINER_NAME_HERE]
Ports:

Created:  1448893496
Status:  Exited (137) 22 hours ago
Command:  /usr/local/bin/start.sh
SizeRw:  0
SizeRootFs:  0
----------------------------------------------------------------------------------

A lot of influence comes from the dockviz project.

Currently uses:

TODO:
  • Make the tree view look better. Similar to the now deprecated docker images --tree output.
  • Break up code so it's not all in main.go
  • Add ability to show images tree by image name
  • Add ability to visualize any containers en masse (similar to running docker ps -a)
  • Add stats for containers (docker stats $CONTAINER_ID)
  • Make it work for more envs than just docker-machine
  • Add cli flags for truncating the image ID and showing cumulative image size vs individual image size
  • Add cli flag to show only labeled images as output (less verbose)
  • Any UI enhancements?
  • COMMENTS COMMENTS COMMENTS
  • TESTS TESTS TESTS

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/codegangsta/cli
Package cli provides a minimal framework for creating and organizing command line Go applications.
Package cli provides a minimal framework for creating and organizing command line Go applications.
_workspace/src/github.com/fsouza/go-dockerclient
Package docker provides a client for the Docker remote API.
Package docker provides a client for the Docker remote API.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/Sirupsen/logrus
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/parsers
Package parsers provides helper functions to parse and validate different type of string.
Package parsers provides helper functions to parse and validate different type of string.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/pools
Package pools provides a collection of pools which provide various data types with buffers.
Package pools provides a collection of pools which provide various data types with buffers.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/ulimit
Package ulimit provides structure and helper function to parse and represent resource limits (Rlimit and Ulimit, its human friendly version).
Package ulimit provides structure and helper function to parse and represent resource limits (Rlimit and Ulimit, its human friendly version).
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/units
Package units provides helper function to parse and print size and time units in human-readable format.
Package units provides helper function to parse and print size and time units in human-readable format.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/fsouza/go-dockerclient/testing
Package testing provides a fake implementation of the Docker API, useful for testing purpose.
Package testing provides a fake implementation of the Docker API, useful for testing purpose.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL