Como usar o comando docker desktop module ls para listar módulos

DockerBeginner
Pratique Agora

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 valor GitCommit do objeto Engine dentro do objeto Server.
  • \n: Isso adiciona um caractere de nova linha para separar a saída de cada módulo.
  • Containerd GitCommit: {{.Server.Containerd.GitCommit}}: Extrai o GitCommit para containerd.
  • Runc GitCommit: {{.Server.Runc.GitCommit}}: Extrai o GitCommit para runc.
  • DockerInit GitCommit: {{.Server.DockerInit.GitCommit}}: Extrai o GitCommit para 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.