Introdução
Neste laboratório, você aprenderá como gerenciar streams usando o comando docker scout stream. Streams são essencialmente coleções de imagens, e entender como interagir com elas é crucial para organizar e gerenciar suas imagens Docker de forma eficaz.
Você começará aprendendo como listar streams existentes para ver quais coleções de imagens estão disponíveis. Em seguida, você explorará como listar as imagens específicas contidas em um stream em particular. Finalmente, você aprenderá como registrar uma imagem em um stream para uma plataforma específica, permitindo que você associe imagens aos seus respectivos streams e plataformas.
Listar streams existentes
Nesta etapa, você aprenderá como listar streams existentes no Docker. Streams são essencialmente repositórios ou coleções de imagens. Listar streams ajuda você a ver quais coleções de imagens estão disponíveis.
Primeiro, vamos usar o comando docker images para listar todas as imagens disponíveis. Este comando mostra as imagens que estão atualmente baixadas em seu sistema.
docker images
Você deve ver uma saída semelhante a esta, embora as imagens específicas variem dependendo do que foi puxado:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest d621e9f15c2f 2 weeks ago 72.8MB
hello-world latest d2c94e258dcb 2 months ago 13.3kB
A coluna REPOSITORY na saída representa o nome do stream. A coluna TAG representa uma versão específica dentro desse stream.
Para listar apenas os nomes de stream (repositórios) únicos, você pode processar a saída de docker images. Podemos usar ferramentas de linha de comando como awk e sort para conseguir isso.
docker images | awk '{print $1}' | sort -u
Vamos detalhar este comando:
docker images: Este comando lista todas as imagens.|: Este é um pipe, que envia a saída do comando à esquerda como entrada para o comando à direita.awk '{print $1}':awké uma poderosa ferramenta de processamento de texto.{print $1}diz aoawkpara imprimir a primeira coluna de cada linha da entrada. Na saída dedocker images, a primeira coluna é oREPOSITORY.|: Outro pipe para enviar a saída deawkparasort.sort -u:sortclassifica as linhas de entrada alfabeticamente.-usignifica único, que remove linhas duplicadas. Isso nos dá uma lista de nomes de repositórios únicos, que são nossos streams.
A saída será uma lista de nomes de repositórios únicos, assim:
REPOSITORY
hello-world
ubuntu
Este comando lista efetivamente os streams (repositórios) existentes que têm imagens baixadas em seu sistema.
Listar imagens de um stream específico
Na etapa anterior, você aprendeu como listar todos os streams (repositórios) existentes. Agora, você aprenderá como listar as imagens pertencentes a um stream específico. Isso é útil quando você deseja ver as diferentes versões (tags) de uma imagem em particular.
Para listar imagens de um stream específico, você pode usar o comando docker images seguido pelo nome do stream. Por exemplo, para listar todas as imagens no stream ubuntu, você usaria:
docker images ubuntu
Antes de executar este comando, vamos garantir que a imagem ubuntu esteja disponível em seu sistema. Se não estiver, você pode puxá-la usando o comando docker pull.
docker pull ubuntu
Você deve ver uma saída indicando que a imagem está sendo baixada.
Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Agora que a imagem ubuntu está disponível, você pode listar as imagens no stream ubuntu:
docker images ubuntu
A saída mostrará as imagens pertencentes ao stream ubuntu. Se você só puxou a tag latest, você verá algo como isto:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest d621e9f15c2f 2 weeks ago 72.8MB
Se você tivesse outras tags de ubuntu baixadas, elas também seriam listadas aqui.
Você pode substituir ubuntu por qualquer outro nome de stream que você viu na saída de docker images da etapa anterior para listar as imagens naquele stream específico. Por exemplo, para listar imagens no stream hello-world:
docker images hello-world
Este comando mostrará as imagens disponíveis para o stream hello-world.
Registrar uma imagem em um stream para uma plataforma específica
Nesta etapa, você aprenderá como "registrar" uma imagem em um stream para uma plataforma específica. Na terminologia do Docker, isso é tipicamente feito marcando uma imagem existente com um novo nome que inclui o stream desejado e, potencialmente, informações da plataforma. Marcar uma imagem essencialmente cria um novo ponteiro para uma camada de imagem existente, permitindo que você se refira à mesma imagem com um nome e tag diferentes.
O comando básico para marcar uma imagem é docker tag. A sintaxe é:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
SOURCE_IMAGE[:TAG]: Este é o nome e a tag opcional da imagem existente que você deseja marcar.TARGET_IMAGE[:TAG]: Este é o novo nome e a tag opcional que você deseja atribuir à imagem. A parteTARGET_IMAGErepresenta o nome do stream.
Vamos usar a imagem ubuntu que puxamos na etapa anterior. Vamos marcá-la com um novo nome de stream, por exemplo, myubuntu.
Primeiro, vamos verificar a imagem ubuntu existente e seu ID:
docker images ubuntu
Você verá uma saída semelhante a esta, observando o IMAGE ID:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest d621e9f15c2f 2 weeks ago 72.8MB
Agora, vamos marcar a imagem ubuntu:latest com o novo nome de stream myubuntu e a tag v1.0:
docker tag ubuntu:latest myubuntu:v1.0
Este comando não produz muita saída se for bem-sucedido. Ele simplesmente cria a nova tag.
Agora, vamos listar as imagens novamente para ver a imagem recém-marcada:
docker images
Você deve ver agora tanto a imagem original ubuntu:latest quanto a nova imagem myubuntu:v1.0, ambas apontando para o mesmo IMAGE ID:
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu v1.0 d621e9f15c2f 2 weeks ago 72.8MB
ubuntu latest d621e9f15c2f 2 weeks ago 72.8MB
hello-world latest d2c94e258dcb 2 months ago 13.3kB
Observe que myubuntu:v1.0 tem o mesmo IMAGE ID que ubuntu:latest. Isso confirma que myubuntu:v1.0 é apenas uma nova referência aos mesmos dados de imagem subjacentes.
Embora o comando docker tag em si não lide explicitamente com plataformas no processo de marcação, a imagem em si pode ser construída para uma plataforma específica. Quando você puxa uma imagem, o Docker normalmente puxa a imagem para a arquitetura do seu sistema. Se você precisar trabalhar com imagens para diferentes plataformas, você normalmente usaria ferramentas como docker buildx para construir imagens multi-plataforma ou especificar a plataforma durante a operação de pull (por exemplo, docker pull --platform linux/amd64 ubuntu). No entanto, para o propósito de "registrar" uma imagem existente em um stream, o comando docker tag é a maneira padrão de criar uma nova referência para essa imagem dentro de um nome de stream diferente.
Resumo
Neste laboratório, você aprendeu como gerenciar streams usando o comando docker scout stream. Você começou entendendo como listar os streams existentes, que são essencialmente repositórios ou coleções de imagens. Você usou o comando docker images para ver todas as imagens baixadas e, em seguida, processou a saída com awk e sort -u para extrair e listar os nomes de stream (repositórios) únicos.
Você também aprendeu como listar as imagens pertencentes a um stream específico e como registrar uma imagem em um stream para uma plataforma específica. Essas etapas demonstram operações fundamentais para organizar e gerenciar suas imagens Docker dentro do contexto de streams.



