Conteúdo

Tutorial de docker inspect: veja detalhes de contêineres e imagens (-f format)

docker inspect exibe a configuração e o estado completos de um objeto Docker em formato JSON. O objeto pode ser um contêiner, uma imagem, um Volume ou uma rede.

Sintaxe

docker inspect [opções] nome ou ID [nome ou ID...]
OpçãoDescrição
-f, --format modeloUse um modelo Go para extrair apenas as partes necessárias, ou json
--type tipoEspecifique o tipo de objeto: container, image, volume, network etc. (use quando houver nomes repetidos)
-s, --sizePara contêineres: exibe também o tamanho

Saída completa

$ docker inspect web | head -n 12
[
    {
        "Id": "1ec4fdc5c592b09b64e8f28869c37f89ab17163f88bfcb09e82815a44b0e1164",
        "Created": "2026-10-13T05:28:35.05807319Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
            "Status": "running",

A saída completa tem centenas de linhas. Na prática, quase sempre você usa -f para extrair apenas os campos necessários.

Modelos -f: consultas comuns

As consultas a seguir são para um contêiner nginx chamado web (iniciado com -e APP_MODE=demo):

$ docker inspect -f "{{.State.Status}} {{.State.StartedAt}}" web
running 2026-10-13T05:28:40.584115149Z

$ docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" web
172.18.0.2

$ docker inspect -f "{{json .Config.Env}}" web
["APP_MODE=demo","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NGINX_VERSION=1.30.5","PKG_RELEASE=1","DYNPKG_RELEASE=1","NJS_VERSION=1.0.1","NJS_RELEASE=1","ACME_VERSION=0.4.1"]

$ docker inspect -f "{{.Config.Image}} {{.HostConfig.RestartPolicy.Name}}" web
nginx:1.30-alpine no
O que você quer saberModelo
Estado e horário de inicialização{{.State.Status}} {{.State.StartedAt}}
Código de saída e se houve encerramento por falta de memória{{.State.ExitCode}} {{.State.OOMKilled}}
Endereço IP{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}
Variáveis de ambiente{{json .Config.Env}}
Imagem usada e política de reinício{{.Config.Image}} {{.HostConfig.RestartPolicy.Name}}
Montagens{{json .Mounts}}
Mapeamento de portas{{json .NetworkSettings.Ports}}
Resultado da verificação de integridade{{json .State.Health}}
PID no host{{.State.Pid}}

Sintaxe dos modelos:

  • {{.campo.subcampo}}: extrai um valor.
  • {{json .campo}}: exibe uma seção inteira como JSON (array ou objeto).
  • {{range .lista}}...{{end}}: percorre cada item de uma lista ou objeto.

Mudança no Docker 29: {{.NetworkSettings.IPAddress}}, comum em tutoriais antigos, foi removido. A execução resulta em template parsing error: ... map has no entry for key "IPAddress". Use a sintaxe com range da tabela acima.

Imagens, Volume e rede

$ docker inspect -f "{{.Config.Cmd}} {{.Config.Entrypoint}}" nginx:1.30-alpine
[nginx -g daemon off;] [/docker-entrypoint.sh]

$ docker inspect -f "{{.Architecture}} {{.Os}} {{.Size}}" nginx:1.30-alpine
amd64 linux 92750711

$ docker volume create v1
v1

$ docker inspect -f "{{.Mountpoint}}" v1
/var/lib/docker/volumes/v1/_data

$ docker inspect --type network -f "{{range .IPAM.Config}}{{.Subnet}}{{end}}" bridge
172.18.0.0/16

$ docker volume rm v1
v1
  • .Config.Cmd e .Config.Entrypoint da imagem são os comandos de inicialização padrão. .Architecture indica a arquitetura da CPU, e .Size é o tamanho em bytes (92750711 equivale a cerca de 92,8 MB).
  • .Mountpoint do Volume é o caminho real dos dados no host Docker. No Docker Desktop, esse caminho fica dentro da máquina virtual e não pode ser aberto diretamente no Windows ou macOS.
  • --type network especifica que você está consultando uma rede. .IPAM.Config contém a configuração da sub-rede.

Capítulos relacionados

Exercícios

Exercício: descubra quais caminhos o contêiner web montou e qual é o mapeamento de portas.

Resposta
docker inspect -f "{{json .Mounts}}" web
docker inspect -f "{{json .NetworkSettings.Ports}}" web

O web desta página não tem montagens nem foi iniciado com -p, então os resultados são [] e {"80/tcp":null}, que mostra apenas a porta interna do contêiner.

Perguntas frequentes

Por que {{.NetworkSettings.IPAddress}} encontrado na internet dá erro?

O Docker 29 não fornece mais esse campo. Ao usá-lo, ocorre o erro map has no entry for key "IPAddress". Obtenha o endereço IP de cada rede: {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}.

Como descubro quais campos posso consultar?

Execute o comando uma vez sem -f; a estrutura JSON exibida mostra os nomes dos campos. Por exemplo, State.Status fica {{.State.Status}}. Você também pode imprimir uma seção inteira com {{json .Config}}.

Como escrever as aspas de -f no Windows?

No PowerShell e no CMD, coloque o modelo entre aspas duplas, por exemplo, docker inspect -f "{{.State.Status}}" web. O modelo não pode conter outras aspas duplas; quando precisar, use uma string entre aspas simples.

Atualizado 14 de outubro de 2026