Introdução
Neste laboratório, você aprenderá como usar o comando docker compose images para listar as imagens Docker usadas pelos serviços definidos em um arquivo docker-compose.yml. Começaremos preparando um arquivo docker-compose.yml simples e, em seguida, usaremos o comando docker compose up para iniciar os serviços.
Em seguida, exploraremos diferentes maneiras de listar as imagens. Você aprenderá como listar todas as imagens usadas pelos contêineres criados, como listar apenas os IDs das imagens usando a opção quiet e como listar as imagens em formato JSON para facilitar a análise. Essa experiência prática fornecerá habilidades práticas para gerenciar imagens dentro de seus projetos Docker Compose.
Prepare um arquivo docker-compose.yml simples
Nesta etapa, prepararemos um arquivo docker-compose.yml simples. Antes de começarmos, precisamos instalar o Docker Compose. Docker Compose é uma ferramenta para definir e executar aplicações Docker com múltiplos contêineres. Com o Compose, você usa um arquivo YAML para configurar os serviços da sua aplicação. Em seguida, com um único comando, você cria e inicia todos os serviços a partir da sua configuração.
Primeiro, vamos instalar o Docker Compose. Faremos o download do binário do Docker Compose e o tornaremos executável.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Agora, vamos verificar a instalação verificando a versão do Docker Compose.
docker-compose --version
Você deve ver uma saída semelhante a Docker Compose version v2.20.2.
Em seguida, criaremos um diretório para nosso projeto e navegaremos até ele.
mkdir ~/project/my-docker-app
cd ~/project/my-docker-app
Agora, criaremos um arquivo docker-compose.yml usando o editor nano. Este arquivo definirá um serviço web simples usando a imagem nginx.
nano docker-compose.yml
No editor nano, cole o seguinte conteúdo:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Vamos detalhar este arquivo docker-compose.yml:
version: '3.8'especifica a versão do formato do arquivo Compose.services:define os serviços para nossa aplicação.web:é o nome do nosso serviço.image: nginx:latestespecifica a imagem Docker a ser usada para este serviço. Neste caso, estamos usando a versão mais recente da imagemnginx.ports:mapeia as portas entre o host e o contêiner."80:80"mapeia a porta 80 no host para a porta 80 no contêiner.
Salve o arquivo pressionando Ctrl + X, depois Y e, em seguida, Enter.
Antes de iniciar o serviço, precisamos baixar a imagem nginx:latest.
docker pull nginx:latest
Este comando baixa a imagem nginx:latest do Docker Hub.
Iniciar os serviços definidos no arquivo docker-compose.yml
Nesta etapa, iniciaremos os serviços definidos em nosso arquivo docker-compose.yml. Usaremos o comando docker-compose up para construir, criar e iniciar os serviços.
Certifique-se de estar no diretório ~/project/my-docker-app onde você criou o arquivo docker-compose.yml.
cd ~/project/my-docker-app
Agora, execute o seguinte comando para iniciar os serviços em modo detached (em segundo plano).
docker-compose up -d
A flag -d executa os contêineres em modo detached, o que significa que eles serão executados em segundo plano e não ocuparão seu terminal.
Você deve ver uma saída indicando que o serviço web está sendo criado e iniciado.
Para verificar se o contêiner está em execução, você pode usar o comando docker ps.
docker ps
Você deve ver um contêiner chamado my-docker-app-web-1 (ou similar, dependendo do nome do diretório do projeto) com a imagem nginx, e o status deve ser Up.
Também podemos verificar se o servidor web está acessível usando curl para acessar localhost na porta 80.
curl http://localhost:80
Você deve ver a saída HTML da página de boas-vindas padrão do Nginx no seu terminal, confirmando que o servidor web está em execução e acessível.
Listar as imagens utilizadas pelos containers criados
Nesta etapa, listaremos as imagens Docker que estão atualmente em nosso sistema, focando especificamente na imagem usada pelo contêiner que acabamos de criar. O comando docker images é usado para listar as imagens.
Execute o seguinte comando para listar todas as imagens.
docker images
Você deve ver uma tabela com informações sobre as imagens, incluindo REPOSITORY, TAG, IMAGE ID, CREATED e SIZE. Você deve ver a imagem nginx listada aqui.
A saída mostra as imagens que foram baixadas ou construídas em seu sistema. A imagem nginx foi baixada na etapa anterior e agora é usada pelo contêiner em execução.
Listar apenas os IDs das imagens usando a opção quiet
Nesta etapa, aprenderemos como listar apenas os IDs das imagens usando o comando docker images com a opção quiet. Isso é útil quando você precisa obter uma lista de IDs de imagens para scripting ou outros propósitos.
A opção quiet é especificada com a flag -q.
Execute o seguinte comando para listar apenas os IDs das imagens.
docker images -q
Você deve ver uma lista de IDs de imagens, um por linha. Essa saída é muito mais concisa do que a saída completa de docker images.
Essa opção é particularmente útil quando você deseja processar a lista de imagens programaticamente, por exemplo, para remover imagens antigas.
Listar imagens em formato JSON
Nesta etapa, aprenderemos como listar imagens Docker em formato JSON. Isso é útil quando você deseja analisar a saída programaticamente usando ferramentas como jq.
Podemos usar a opção --format com o comando docker images para especificar o formato de saída. Para obter a saída em formato JSON, usamos a palavra-chave json.
Execute o seguinte comando para listar imagens em formato JSON.
docker images --format json
Você deve ver a saída em formato JSON, que é uma maneira estruturada de representar as informações da imagem. Cada imagem será representada como um objeto JSON dentro de um array JSON.
Este formato é ideal para integrar informações de imagens Docker em scripts ou outras aplicações que podem processar dados JSON.
Após concluir esta etapa, você pode parar o contêiner em execução e remover o diretório do projeto, se desejar.
Para parar o contêiner, volte para o diretório ~/project/my-docker-app e execute:
cd ~/project/my-docker-app
docker-compose down
Este comando para e remove os contêineres, redes e volumes criados por docker-compose up.
Para remover o diretório do projeto, você pode usar o comando rm:
cd ~/project
rm -rf my-docker-app
Resumo
Neste laboratório, aprendemos como usar o comando docker compose images para listar as imagens usadas pelos serviços definidos em um arquivo docker-compose.yml. Começamos preparando um arquivo docker-compose.yml simples, definindo um serviço web usando a imagem nginx, incluindo a instalação do Docker Compose e a criação da estrutura de arquivos necessária.
Em seguida, iniciamos os serviços definidos no arquivo docker-compose.yml. Finalmente, exploramos diferentes maneiras de listar as imagens usadas pelos contêineres criados, incluindo a listagem de todos os detalhes da imagem, a listagem apenas dos IDs das imagens usando a opção quiet e a listagem de imagens em formato JSON.



