mirror of
https://github.com/docker/cli.git
synced 2025-08-27 13:42:00 +03:00
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>
114 lines
3.2 KiB
Markdown
114 lines
3.2 KiB
Markdown
---
|
|
title: "inspect"
|
|
description: "The inspect command description and usage"
|
|
keywords: "inspect, container, json"
|
|
---
|
|
|
|
# inspect
|
|
|
|
```markdown
|
|
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](http://golang.org/pkg/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"
|
|
|
|
```bash
|
|
$ 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.
|
|
|
|
```bash
|
|
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
|
|
```
|
|
|
|
### Get an instance's MAC address
|
|
|
|
```bash
|
|
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
|
|
```
|
|
|
|
### Get an instance's log path
|
|
|
|
```bash
|
|
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
|
|
```
|
|
|
|
### Get an instance's image name
|
|
|
|
```bash
|
|
$ 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:
|
|
|
|
```bash
|
|
$ 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.
|
|
|
|
```bash
|
|
$ 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.
|
|
|
|
```bash
|
|
$ docker inspect --format='{{json .Config}}' $INSTANCE_ID
|
|
```
|