Removing old networking.md
Updating dockernetworks.md with images
Adding information on network plugins
Adding blurb about links to docker networking
Updating the working documentation
Adding Overlay Getting Started
Downplaying links by removing refs/examples, adding refs/examples for network.
Updating getting started to reflect networks not links
Pulling out old network material
Updating per discussion with Madhu to add Default docs section
Updating with bridge default
Fix bad merge
Updating with new cluster-advertise behavior
Update working and NetworkSettings examples
Correcting example for default bridge discovery behavior
Entering comments
Fixing broken Markdown Syntax
Updating with comments
Updating all the links
Signed-off-by: Mary Anthony <mary@docker.com>
Upstream-commit: 02a859b9f3
Component: cli
2.6 KiB
inspect
Usage: docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
Return low-level information on a container or image
-f, --format="" Format the output using the given go template
--help=false Print usage
--type=container|image Return JSON for specified type, permissible
values are "image" or "container"
-s, --size=false Display total file sizes if the type is container
By default, this will render all results in a JSON array. 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.
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:
For the most part, you can pick out any field from the JSON in a fairly straightforward manner.
$ docker inspect '{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
Get an instance's log path:
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
List All Port Bindings:
One 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 config:
The .Field syntax doesn't work when the field contains JSON data, but
the template language's custom json function does. The .config
section contains complex JSON object, so to grab it as JSON, you use
json to convert the configuration object into JSON.
$ docker inspect --format='{{json .config}}' $INSTANCE_ID