docker inspect
Estimated reading time: 3 minutesEdge only: This is the CLI reference for Docker CE Edge versions. Some of these options may not be available to Docker CE stable or Docker EE. You can view the stable version of this CLI reference or learn about Docker CE Edge.
Description
Return low-level information on Docker objects
Usage
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
Options
Name, shorthand | Default | Description |
--format , -f |
Format the output using the given Go template | |
--size , -s |
Display total file sizes if the type is container | |
--type |
Return JSON for specified type |
Parent command
Command | Description |
---|---|
docker | The base command for the Docker CLI. |
Extended description
ker inspect provides detailed information on constructs controlled by Docker.
By default, docker inspect
will render results in a JSON array.
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