Como usar o comando docker scout watch para monitorar imagens de contêiner

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar efetivamente o comando docker scout watch para monitorar imagens de contêiner. Você explorará vários cenários, começando por monitorar um repositório específico em busca de novas imagens, depois refinando seu monitoramento filtrando por tag. Você também aprenderá como estender seu monitoramento para abranger todos os repositórios dentro de um registro e, finalmente, como iniciar um monitoramento que inclua todas as imagens existentes em um repositório. Através de exercícios práticos, você obterá experiência prática na configuração e gerenciamento do monitoramento de imagens com Docker Scout.

Monitorar um repositório específico em busca de novas imagens

Nesta etapa, você aprenderá como monitorar um repositório Docker específico em busca de novas imagens usando o comando docker pull. Esta é uma operação fundamental no Docker, permitindo que você baixe imagens de um registro para sua máquina local.

Primeiro, vamos baixar uma imagem específica do registro Docker Hub. Usaremos a imagem hello-world, que é uma imagem muito pequena usada para testar instalações do Docker.

docker pull hello-world

Você deve ver uma saída indicando que a imagem está sendo baixada.

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Este comando diz ao Docker para baixar a imagem hello-world com a tag latest do registro padrão (Docker Hub). Se a imagem já existir localmente, o Docker verificará se uma versão mais recente está disponível e a baixará, se necessário.

Em seguida, vamos listar as imagens que você tem em sua máquina local para confirmar que a imagem hello-world foi baixada.

docker images

Você deve ver hello-world listado na saída.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    ...            ...            ...

Este comando mostra uma lista de todas as imagens Docker armazenadas em sua máquina local, incluindo seu repositório, tag, ID da imagem, data de criação e tamanho.

Agora, vamos tentar baixar a mesma imagem novamente. Como você já tem a versão latest de hello-world, o Docker não a baixará novamente.

docker pull hello-world

A saída indicará que a imagem está atualizada.

Using default tag: latest
latest: Pulling from library/hello-world
Status: Image is up to date for hello-world:latest
docker.io/library/hello-world:latest

Isso demonstra como docker pull verifica se há versões mais recentes antes de baixar.

Monitorar um repositório específico e filtrar por tag

Nesta etapa, você aprenderá como monitorar um repositório Docker específico e filtrar por tag ao baixar imagens. As imagens Docker geralmente têm diferentes versões ou variações identificadas por tags. Especificar uma tag permite que você baixe uma versão específica de uma imagem.

Na etapa anterior, baixamos a imagem hello-world com a tag padrão latest. Agora, vamos baixar uma imagem diferente, por exemplo, a imagem ubuntu, e especificar uma tag específica. Vamos baixar a tag 20.04, que corresponde ao lançamento Ubuntu 20.04 LTS.

docker pull ubuntu:20.04

Você verá a saída indicando o progresso do download para a tag da imagem Ubuntu especificada.

20.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

Este comando diz ao Docker para baixar a imagem ubuntu especificamente com a tag 20.04. Se você não especificar uma tag, o Docker usará latest por padrão.

Agora, vamos listar suas imagens locais novamente para ver a imagem ubuntu:20.04 recém-baixada.

docker images

Você agora deve ver tanto hello-world:latest quanto ubuntu:20.04 na lista.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    ...            ...            ...
ubuntu        20.04     ...            ...            ...

Isso mostra que você baixou com sucesso uma versão específica da imagem ubuntu especificando sua tag.

Você também pode baixar outras tags da mesma imagem. Por exemplo, vamos baixar a tag 18.04 da imagem ubuntu.

docker pull ubuntu:18.04

Novamente, você verá o progresso do download.

18.04: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04

Listar suas imagens mais uma vez mostrará todas as três imagens que você baixou.

docker images

A saída agora incluirá ubuntu:18.04.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    ...            ...            ...
ubuntu        20.04     ...            ...            ...
ubuntu        18.04     ...            ...            ...

Isso demonstra como você pode usar tags para gerenciar diferentes versões da mesma imagem em sua máquina local.

Monitorar todos os repositórios em um registro

Nesta etapa, você aprenderá como listar repositórios dentro de um registro Docker. Embora o docker pull seja usado para imagens individuais, não existe um único comando para "monitorar" ou listar todos os repositórios em um registro público como o Docker Hub diretamente da CLI do Docker devido ao grande número de repositórios. No entanto, você pode pesquisar repositórios com base em palavras-chave.

O comando docker search permite que você pesquise imagens no registro Docker Hub. Vamos pesquisar imagens relacionadas a "nginx".

docker search nginx

Você verá uma lista de repositórios que correspondem ao termo de pesquisa "nginx".

NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                              Official build of Nginx.                        16000     [OK]
...

A saída fornece informações sobre cada repositório correspondente, incluindo seu nome, descrição, número de estrelas e se é uma imagem oficial ou uma compilação automatizada.

Você também pode filtrar os resultados da pesquisa. Por exemplo, para ver apenas imagens oficiais relacionadas a "ubuntu", você pode usar a flag --filter.

docker search --filter is-official=true ubuntu

Este comando mostrará apenas os repositórios Ubuntu oficiais.

NAME      DESCRIPTION                STARS     OFFICIAL   AUTOMATED
ubuntu    Ubuntu is a Debian-based...   14000     [OK]

Embora o docker search não liste todos os repositórios, é a principal maneira de descobrir imagens dentro de um registro usando a CLI do Docker. Para obter uma lista abrangente de repositórios em um grande registro público como o Docker Hub, você normalmente precisaria usar a API do registro ou uma interface web.

Para o propósito deste laboratório, entender como pesquisar e descobrir imagens é fundamental para encontrar os repositórios que você deseja "monitorar" ou baixar imagens.

Monitorar um repositório e enviar todas as imagens existentes

Nesta etapa, você aprenderá como marcar uma imagem existente e enviá-la para um registro Docker. Enviar imagens permite que você compartilhe suas imagens personalizadas ou versões modificadas de imagens existentes com outras pessoas ou armazene-as em um local remoto.

Antes de poder enviar uma imagem, você precisa marcá-la com o endereço do registro, seu nome de usuário e o nome do repositório. Usaremos a imagem ubuntu:20.04 que você baixou na etapa anterior. Vamos marcá-la para enviá-la ao Docker Hub. Substitua your_docker_username pelo seu nome de usuário real do Docker Hub.

docker tag ubuntu:20.04 your_docker_username/ubuntu:20.04

Este comando cria uma nova tag para a imagem ubuntu:20.04. A nova tag é your_docker_username/ubuntu:20.04. O formato é [registry]/[username]/[repository]:[tag]. Se você estiver enviando para o Docker Hub, pode omitir a parte do registro (docker.io/).

Agora, liste suas imagens locais novamente para ver a nova tag.

docker images

Você deve ver uma entrada com your_docker_username/ubuntu como o repositório e 20.04 como a tag, compartilhando o mesmo ID da imagem que a imagem original ubuntu:20.04.

REPOSITORY                     TAG       IMAGE ID       CREATED        SIZE
hello-world                    latest    ...            ...            ...
ubuntu                         20.04     ...            ...            ...
ubuntu                         18.04     ...            ...            ...
your_docker_username/ubuntu    20.04     ...            ...            ...

Agora que a imagem está marcada corretamente, você pode enviá-la para seu repositório Docker Hub. Observação: Você precisará estar logado no Docker Hub para enviar imagens. Se você não estiver logado, o comando docker push falhará. Para o propósito deste laboratório, demonstraremos o comando, mas você não precisa enviar a imagem com sucesso, a menos que tenha uma conta Docker Hub e esteja logado.

docker push your_docker_username/ubuntu:20.04

Se você estiver logado, verá a saída indicando as camadas sendo enviadas para o registro. Se você não estiver logado, receberá um erro de autenticação.

The push refers to repository [docker.io/your_docker_username/ubuntu]
...

Este comando carrega a imagem com a tag especificada para seu repositório no Docker Hub.

Embora você não possa "monitorar" um repositório e enviar automaticamente todas as imagens existentes com um único comando, você pode conseguir isso criando um script com os comandos docker tag e docker push para as imagens que deseja enviar.

Resumo

Neste laboratório, você aprendeu o comando fundamental docker pull para baixar imagens de contêiner de um registro, demonstrando especificamente como baixar uma imagem específica como hello-world e verificar sua presença usando docker images. Você também observou como o Docker lida eficientemente com solicitações de download subsequentes para a mesma imagem, baixando apenas se uma versão mais recente estiver disponível.