Como usar o comando docker compose images para listar imagens

DockerBeginner
Pratique Agora

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:latest especifica a imagem Docker a ser usada para este serviço. Neste caso, estamos usando a versão mais recente da imagem nginx.
  • 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.