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ção | Descrição |
|---|---|
-f, --format modelo | Use um modelo Go para extrair apenas as partes necessárias, ou json |
--type tipo | Especifique o tipo de objeto: container, image, volume, network etc. (use quando houver nomes repetidos) |
-s, --size | Para 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 saber | Modelo |
|---|---|
| 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 emtemplate parsing error: ... map has no entry for key "IPAddress". Use a sintaxe comrangeda 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.Cmde.Config.Entrypointda imagem são os comandos de inicialização padrão..Architectureindica a arquitetura da CPU, e.Sizeé o tamanho em bytes (92750711 equivale a cerca de 92,8 MB)..Mountpointdo 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 networkespecifica que você está consultando uma rede..IPAM.Configcontém a configuração da sub-rede.
Capítulos relacionados
- docker ps:
--formatusa a mesma sintaxe de modelos - Redes e comunicação entre contêineres
- Como funciona por baixo dos panos: use
.State.Pidpara localizar o processo do contêiner no host
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