Introdução
Neste laboratório, você aprenderá como usar o comando docker info para exibir informações abrangentes sobre o seu sistema Docker. Você começará executando o comando básico docker info para visualizar detalhes sobre o daemon Docker, incluindo contagens de contêineres e imagens, o driver de armazenamento e outras informações de nível de sistema.
Após a exibição básica, você explorará como formatar a saída do comando docker info de diferentes maneiras. Especificamente, você aprenderá como formatar a saída como JSON para facilitar a análise e como usar um template personalizado para exibir apenas as informações específicas que você precisa. Este laboratório irá equipá-lo com as habilidades para recuperar e interpretar efetivamente as informações do sistema Docker.
Exibir informações básicas do sistema Docker
Nesta etapa, você aprenderá como exibir informações básicas sobre o seu sistema Docker usando o comando docker info. Este comando fornece detalhes sobre o daemon Docker, incluindo o número de contêineres e imagens, o driver de armazenamento e outras informações de nível de sistema.
Abra o terminal no ambiente LabEx. Você pode executar o comando docker info diretamente.
docker info
Você deve ver uma saída semelhante a esta (os detalhes exatos variarão dependendo do seu ambiente):
Client:
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.10.4
Build: 8842a472b58241d32996951f172f32259cd758e5
compose: Docker Compose (Docker Inc.)
Version: v2.17.2
Build: 6833407
scan: Docker Scan (Docker Inc.)
Version: v0.23.0
Build: 2c50987
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.21
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9ba4b2555a59f71c4c1c1897e93a540b0c52b883
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
cgroupns
Kernel Version: 5.15.0-76-generic
Operating System: Ubuntu 22.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.84GiB
Name: labex-vm
ID: 6111111111111111111111111111111111111111111111111111111111111111
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No blkio weight, cpus, or mem limits set, Docker may behave unexpectedly without them.
A saída fornece uma visão geral abrangente da sua instalação Docker e seu estado atual. Você pode ver informações como a versão do Docker, o número de contêineres e imagens em execução, o driver de armazenamento sendo usado e detalhes sobre o sistema operacional e hardware subjacentes.
Formatar a saída do docker info como JSON
Na etapa anterior, você viu a saída padrão do comando docker info. Essa saída é legível por humanos, mas pode ser difícil de analisar programaticamente. O Docker fornece a flag --format para personalizar o formato da saída. Nesta etapa, você aprenderá como formatar a saída do docker info como JSON.
A flag --format usa o pacote text/template do Go. Para gerar a informação como JSON, você pode usar o template . | json.
Execute o seguinte comando no seu terminal:
docker info --format '{{json .}}'
Você deve ver as mesmas informações de antes, mas agora formatadas como um único objeto JSON:
{
"Client": {
"Context": "default",
"DebugMode": false,
"Plugins": {
"buildx": {
"Version": "v0.10.4",
"Build": "8842a472b58241d32996951f172f32259cd758e5"
},
"compose": {
"Version": "v2.17.2",
"Build": "6833407"
},
"scan": {
"Version": "v0.23.0",
"Build": "2c50987"
}
}
},
"Server": {
"Containers": 0,
"ContainersRunning": 0,
"ContainersPaused": 0,
"ContainersStopped": 0,
"Images": 0,
"ServerVersion": "20.10.21",
"StorageDriver": "overlay2",
"LoggingDriver": "json-file",
"CgroupDriver": "systemd",
"CgroupVersion": "2",
"Plugins": {
"Volume": ["local"],
"Network": ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"],
"Log": [
"awslogs",
"fluentd",
"gcplogs",
"gelf",
"journald",
"json-file",
"local",
"logentries",
"splunk",
"syslog"
]
},
"Swarm": {
"NodeID": "",
"LocalNodeState": "inactive",
"ControlAvailable": false,
"Error": null,
"RemoteManagers": null
},
"Runtimes": {
"io.containerd.runc.v2": {
"path": "io.containerd.runc.v2"
},
"io.containerd.runtime.v1.linux": {
"path": "io.containerd.runtime.v1.linux"
},
"runc": {
"path": "runc"
}
},
"DefaultRuntime": "runc",
"InitBinary": "docker-init",
"ContainerdVersion": "9ba4b2555a59f71c4c1c1897e93a540b0c52b883",
"RuncVersion": "v1.1.4-0-g5fd4c4d",
"InitVersion": "de40ad0",
"SecurityOptions": ["apparmor", "seccomp", "cgroupns"],
"KernelVersion": "5.15.0-76-generic",
"OperatingSystem": "Ubuntu 22.04.2 LTS",
"OSType": "linux",
"Architecture": "x86_64",
"NCPU": 2,
"MemTotal": 4123631616,
"Name": "labex-vm",
"ID": "6111111111111111111111111111111111111111111111111111111111111111",
"DockerRootDir": "/var/lib/docker",
"DebugMode": false,
"ExperimentalBuild": false,
"InsecureRegistries": ["127.0.0.0/8"],
"LiveRestoreEnabled": false,
"Warnings": [
"No blkio weight, cpus, or mem limits set, Docker may behave unexpectedly without them."
]
}
}
Formatar a saída como JSON é útil quando você deseja processar as informações com outras ferramentas ou scripts.
Formatar a saída do docker info usando um template personalizado
Além de formatar a saída como JSON, você pode usar a flag --format com um template Go personalizado para exibir informações específicas da saída do docker info. Isso permite que você extraia apenas os dados que lhe interessam.
O comando docker info fornece uma estrutura de dados que você pode acessar dentro do template. Por exemplo, para exibir a Versão do Servidor Docker e o número total de CPUs, você pode usar o template 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'.
Execute o seguinte comando no seu terminal:
docker info --format 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'
Você deve ver uma saída semelhante a esta:
Server Version: 20.10.21, CPUs: 2
Neste template:
{{.ServerVersion}}acessa o campoServerVersionda estrutura de dados dodocker info.{{.NCPU}}acessa o campoNCPU, que representa o número de CPUs.
Você pode explorar a saída JSON da etapa anterior para identificar outros campos que você pode querer incluir em seu template personalizado. Por exemplo, para exibir o Sistema Operacional e o Diretório Raiz do Docker, você pode usar o template 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'.
Tente executar este comando:
docker info --format 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'
Você deve ver uma saída semelhante a esta:
OS: Ubuntu 22.04.2 LTS, Docker Root Dir: /var/lib/docker
Usar templates personalizados oferece controle preciso sobre a saída do comando docker info, tornando mais fácil integrar informações do Docker em scripts ou relatórios.
Resumo
Neste laboratório, você aprendeu como usar o comando docker info para exibir informações abrangentes sobre o seu sistema Docker. Você começou executando o comando básico docker info para visualizar detalhes sobre o daemon Docker, incluindo contagens de contêineres e imagens, o driver de armazenamento e outras informações de nível de sistema.
Além disso, você explorou como formatar a saída do comando docker info. Você aprendeu a exibir as informações em formato JSON para facilitar a análise e a integração com outras ferramentas, e também como usar um template Go personalizado para exibir informações específicas em um formato personalizado. Essas opções de formatação oferecem flexibilidade na forma como você acessa e utiliza os detalhes do sistema Docker.



