Introdução
Neste laboratório, você aprenderá como listar os módulos do Docker Desktop usando o comando docker version. Exploraremos diferentes maneiras de visualizar essa informação, incluindo a listagem de todos os módulos, a exibição da saída em formato JSON e a extração apenas dos IDs dos módulos. Este exercício prático ajudará você a entender os componentes da sua instalação do Docker e como recuperar informações sobre eles.
Listar todos os módulos do Docker Desktop
Nesta etapa, aprenderemos como listar todos os módulos do Docker Desktop usando o comando docker version. O comando docker version fornece informações detalhadas sobre a instalação do Docker, incluindo os componentes do cliente e do servidor, e os módulos que fazem parte da instalação do Docker Desktop.
Para listar todos os módulos do Docker Desktop, abra seu terminal e execute o seguinte comando:
docker version
Este comando exibirá uma grande quantidade de informações sobre sua instalação do Docker. Procure por seções como Client (Cliente) e Server (Servidor). Dentro dessas seções, você encontrará detalhes sobre vários componentes e módulos.
Por exemplo, a saída pode ser semelhante a esta (a saída exata pode variar dependendo da sua versão e instalação do Docker):
Client: Docker Engine - Community
Version: 20.10.21
API version: 1.41
Go version: go1.16.15
Git commit: f2213a1
Built: Thu Oct 27 00:18:36 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 3056e8c
Built: Thu Oct 27 00:17:23 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.8
GitCommit: 9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Nesta saída, você pode ver informações sobre o Docker Engine (Mecanismo Docker), containerd, runc e docker-init. Estes são alguns dos módulos-chave que compõem o ambiente Docker. O comando docker version é uma ferramenta útil para entender os diferentes componentes da sua instalação do Docker e suas versões.
Listar módulos do Docker Desktop em formato JSON
Na etapa anterior, usamos o comando docker version para listar os módulos do Docker Desktop. A saída padrão é legível por humanos, mas às vezes você pode precisar da saída em um formato estruturado, como JSON, para scripting ou processamento posterior.
O comando docker version suporta uma flag --format que permite especificar o formato de saída usando o pacote text/template do Go. Para obter a saída em formato JSON, você pode usar o template json ..
Execute o seguinte comando em seu terminal:
docker version --format '{{json .}}'
Este comando exibirá as mesmas informações que docker version, mas formatadas como um objeto JSON. A parte {{json .}} é o template que diz ao Docker para formatar toda a saída (.) como JSON.
A saída será uma única linha de dados JSON, que pode ser semelhante a esta (formatada para legibilidade):
{
"Client": {
"Version": "20.10.21",
"ApiVersion": "1.41",
"GoVersion": "go1.16.15",
"GitCommit": "f2213a1",
"Built": "Thu Oct 27 00:18:36 2022",
"OsArch": "linux/amd64",
"Context": "default",
"Experimental": true
},
"Server": {
"Engine": {
"Version": "20.10.21",
"ApiVersion": "1.41",
"MinAPIVersion": "1.12",
"GoVersion": "go1.16.15",
"GitCommit": "3056e8c",
"Built": "Thu Oct 27 00:17:23 2022",
"OsArch": "linux/amd64",
"Experimental": false
},
"Containerd": {
"Version": "1.6.8",
"GitCommit": "9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b"
},
"Runc": {
"Version": "1.1.4",
"GitCommit": "v1.1.4-0-g5fd4c4d"
},
"DockerInit": {
"Version": "0.19.0",
"GitCommit": "de40ad0"
}
}
}
Esta saída JSON contém as mesmas informações que a saída padrão, mas em um formato estruturado que é fácil para os programas analisarem. Isso é particularmente útil quando você deseja extrair informações específicas da saída docker version em scripts.
Listar apenas os IDs dos módulos do Docker Desktop
Nas etapas anteriores, aprendemos como listar todos os módulos do Docker Desktop e como formatar a saída como JSON. Agora, vamos explorar como extrair apenas informações específicas, como os IDs de commit Git dos módulos. Isso é útil quando você precisa apenas de um pedaço específico de dados para scripting ou automação.
Podemos novamente usar a flag --format com um template personalizado para conseguir isso. Ao inspecionar a saída JSON da etapa anterior, podemos ver que os IDs de commit Git estão localizados em Server.Engine.GitCommit, Server.Containerd.GitCommit, Server.Runc.GitCommit e Server.DockerInit.GitCommit.
Podemos construir um template para extrair esses campos específicos. Execute o seguinte comando em seu terminal:
docker version --format 'Engine GitCommit: {{.Server.Engine.GitCommit}}\nContainerd GitCommit: {{.Server.Containerd.GitCommit}}\nRunc GitCommit: {{.Server.Runc.GitCommit}}\nDockerInit GitCommit: {{.Server.DockerInit.GitCommit}}'
Vamos detalhar o template:
Engine GitCommit: {{.Server.Engine.GitCommit}}: Esta parte extrai o valorGitCommitdo objetoEnginedentro do objetoServer.\n: Isso adiciona um caractere de nova linha para separar a saída de cada módulo.Containerd GitCommit: {{.Server.Containerd.GitCommit}}: Extrai oGitCommitpara containerd.Runc GitCommit: {{.Server.Runc.GitCommit}}: Extrai oGitCommitpara runc.DockerInit GitCommit: {{.Server.DockerInit.GitCommit}}: Extrai oGitCommitpara docker-init.
A saída mostrará o ID de commit Git para cada módulo especificado, semelhante a isto:
Engine GitCommit: 3056e8c
Containerd GitCommit: 9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b
Runc GitCommit: v1.1.4-0-g5fd4c4d
DockerInit GitCommit: de40ad0
Isso demonstra o poder da flag --format e dos templates Go para extrair dados específicos dos comandos Docker. Você pode personalizar o template para extrair qualquer campo disponível na saída docker version.
Resumo
Neste laboratório, aprendemos como listar os módulos do Docker Desktop usando o comando docker version. Exploramos como exibir todos os módulos e seus detalhes, o que fornece informações valiosas sobre os diferentes componentes da instalação do Docker, como o Docker Engine, containerd, runc e docker-init, juntamente com suas versões.
Também aprendemos como listar os módulos do Docker Desktop em formato JSON, o que é útil para processamento programático e integração com outras ferramentas. Finalmente, abordamos como listar apenas os IDs dos módulos do Docker Desktop, fornecendo uma saída concisa para identificação rápida.



