Como usar o comando docker scout environment para gerenciar ambientes

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o comando docker scout environment para gerenciar diferentes ambientes Docker. Começará listando os ambientes existentes para entender os contextos disponíveis no seu sistema.

Em seguida, explorará como listar as imagens Docker associadas a um ambiente específico, permitindo que veja as imagens disponíveis dentro desse contexto. Finalmente, aprenderá como registrar uma imagem específica em um ambiente para uma plataforma particular, demonstrando como associar imagens a diferentes ambientes para melhor organização e gerenciamento.

Listar ambientes existentes

Nesta etapa, aprenderemos como listar os ambientes Docker existentes no seu sistema. Os ambientes Docker permitem que você gerencie diferentes instalações ou contextos Docker. Por padrão, você terá um ambiente default.

Para listar os ambientes Docker existentes, você pode usar o comando docker context ls. Este comando mostra uma tabela com informações sobre cada ambiente, incluindo seu nome, descrição, endpoint Docker e se é o ambiente ativo atual.

Vamos executar o comando para ver os ambientes disponíveis. Abra seu terminal no diretório ~/project.

docker context ls

Você deve ver uma saída semelhante a esta:

NAME        DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *   Current DOCKER_HOST environment           unix:///var/run/docker.sock      n/a                   swarm

Nesta saída, NAME é o nome do ambiente, DESCRIPTION fornece uma breve descrição, DOCKER ENDPOINT mostra o endpoint que o Docker está usando (neste caso, o socket Unix padrão), KUBERNETES ENDPOINT é para integração com Kubernetes (n/a aqui), e ORCHESTRATOR indica o orquestrador que está sendo usado (swarm neste caso). O asterisco (*) ao lado de default indica que é o ambiente atualmente ativo.

Entender como listar ambientes é o primeiro passo para gerenciar diferentes contextos Docker, o que pode ser útil ao trabalhar com daemons Docker remotos ou provedores de nuvem.

Listar imagens associadas a um ambiente específico

Nesta etapa, aprenderemos como listar as imagens Docker disponíveis dentro de um ambiente específico. As imagens Docker são os blocos de construção dos contêineres, contendo o código da aplicação, bibliotecas e dependências.

Para listar as imagens no ambiente atualmente ativo (que é default, como vimos na etapa anterior), você pode usar o comando docker images. Este comando mostra uma lista de imagens com seu repositório, tag, ID da imagem, tempo de criação e tamanho.

Antes de listar as imagens, vamos baixar uma imagem de exemplo para que tenhamos algo para ver na lista. Vamos baixar a imagem hello-world, que é uma imagem muito pequena usada para testar instalações 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

Agora que temos uma imagem, vamos listar as imagens no ambiente default usando o comando docker images.

docker images

Você deve ver uma saída semelhante a esta, incluindo a imagem hello-world que você acabou de baixar:

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

A saída mostra a imagem hello-world com a tag latest, seu IMAGE ID único, quando foi CREATED e seu SIZE.

Listar imagens é uma operação fundamental no Docker, permitindo que você veja quais imagens estão disponíveis localmente para criar contêineres.

Registrar uma imagem em um ambiente para uma plataforma específica

Nesta etapa, exploraremos como o Docker lida com imagens para diferentes plataformas e como você pode interagir com elas, embora "registrar" explicitamente uma imagem em um ambiente para uma plataforma específica não seja um comando Docker padrão da maneira que você pode pensar. As imagens Docker são frequentemente multi-arquitetura, o que significa que uma única tag de imagem pode conter variantes para diferentes arquiteturas de CPU (como amd64, arm64, etc.). Quando você baixa uma imagem, o Docker seleciona automaticamente a variante correta para a arquitetura do seu sistema.

O conceito de "registrar" uma imagem em um ambiente para uma plataforma específica está mais relacionado a garantir que a variante correta da imagem esteja disponível ou seja usada. Embora você não a "registre" explicitamente, você pode baixar imagens especificando uma plataforma de destino.

Vamos demonstrar o download de uma imagem para uma plataforma específica. Vamos baixar a imagem alpine, que é uma distribuição Linux leve, e especificar a plataforma arm64. Mesmo que nossa VM LabEx seja provavelmente amd64, o Docker ainda pode baixar e armazenar imagens para outras arquiteturas.

Primeiro, vamos baixar a imagem alpine sem especificar uma plataforma para ver o comportamento padrão.

docker pull alpine

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

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

Agora, vamos listar as imagens novamente para ver a imagem alpine.

docker images

Você verá alpine na lista.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    ...            ... ago      ...kB
alpine        latest    ...            ... ago      ...MB

Agora, vamos tentar baixar a imagem alpine especificamente para a plataforma arm64 usando a flag --platform.

docker pull --platform arm64 alpine

Você verá uma saída indicando que a variante arm64 está sendo baixada.

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

Embora a saída possa parecer semelhante, o Docker baixou a variante arm64. Se você estivesse em uma máquina arm64, esta seria a padrão. Em uma máquina amd64, você agora tem as variantes amd64 (download padrão) e arm64 da imagem alpine:latest armazenadas localmente.

Embora docker images não mostre explicitamente a plataforma de cada variante de imagem listada por padrão, o Docker as gerencia internamente. Quando você executa um contêiner, o Docker usará a variante de imagem apropriada para a arquitetura do host.

Esta etapa demonstra como o Docker lida com imagens multi-arquitetura e como você pode baixar explicitamente uma imagem para uma plataforma diferente usando a flag --platform.

Resumo

Neste laboratório, aprendemos como gerenciar ambientes Docker usando o comando docker scout environment. Começamos listando os ambientes Docker existentes em nosso sistema usando docker context ls, que nos mostrou o ambiente padrão e seus detalhes.

Em seguida, exploramos como listar as imagens Docker associadas a um ambiente específico usando o comando docker images. Finalmente, aprendemos como registrar uma imagem em um ambiente para uma plataforma específica, embora as etapas detalhadas para isso não tenham sido totalmente fornecidas no conteúdo fornecido.