these markdown files are not consumed directly in the docs, but only their content is included through the YAML does, so there's no need to have these comments in them Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
3.2 KiB
title, description, keywords
title | description | keywords |
---|---|---|
inspect | The inspect command description and usage | inspect, container, json |
inspect
Usage: docker inspect [OPTIONS] NAME|ID [NAME|ID...]
Return low-level information on Docker object(s) (e.g. container, image, volume,
network, node, service, or task) identified by name or ID
Options:
-f, --format Format the output using the given Go template
--help Print usage
-s, --size Display total file sizes if the type is container
--type Return JSON for specified type
Description
Docker inspect provides detailed information on constructs controlled by Docker.
By default, docker inspect
will render results in a JSON array.
Request a custom response format (--format)
If a format is specified, the given template will be executed for each result.
Go's text/template package describes all the details of the format.
Specify target type (--type)
--type container|image|node|network|secret|service|volume|task|plugin
The docker inspect
command matches any type of object by either ID or name.
In some cases multiple type of objects (for example, a container and a volume)
exist with the same name, making the result ambiguous.
To restrict docker inspect
to a specific type of object, use the --type
option.
The following example inspects a volume named "myvolume"
$ docker inspect --type=volume myvolume
Examples
Get an instance's IP address
For the most part, you can pick out any field from the JSON in a fairly straightforward manner.
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
Get an instance's MAC address
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
Get an instance's log path
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
Get an instance's image name
$ docker inspect --format='{{.Config.Image}}' $INSTANCE_ID
List all port bindings
You can loop over arrays and maps in the results to produce simple text output:
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID
Find a specific port mapping
The .Field
syntax doesn't work when the field name begins with a
number, but the template language's index
function does. The
.NetworkSettings.Ports
section contains a map of the internal port
mappings to a list of external address/port objects. To grab just the
numeric public port, you use index
to find the specific port map, and
then index
0 contains the first object inside of that. Then we ask for
the HostPort
field to get the public address.
$ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
Get a subsection in JSON format
If you request a field which is itself a structure containing other
fields, by default you get a Go-style dump of the inner values.
Docker adds a template function, json
, which can be applied to get
results in JSON format.
$ docker inspect --format='{{json .Config}}' $INSTANCE_ID