Como usar o comando docker compose ls para listar projetos Compose

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar efetivamente o comando docker compose ls para listar e gerenciar seus projetos Docker Compose. Começaremos configurando um projeto Compose de exemplo, incluindo a instalação do Docker Compose, se necessário, a criação de um arquivo docker-compose.yml e o início do projeto.

Após a configuração do projeto, você explorará várias maneiras de listar seus projetos Compose usando docker compose ls. Isso inclui listar apenas os projetos em execução, listar todos os projetos (incluindo os parados), exibir apenas os nomes dos projetos e filtrar os projetos com base em critérios específicos. Ao final deste laboratório, você estará proficiente no uso de docker compose ls para obter visibilidade em seus ambientes Compose.

Iniciar um projeto Compose de exemplo

Nesta etapa, aprenderemos como iniciar um projeto Compose de exemplo. Antes de podermos usar o Docker Compose, precisamos instalá-lo. Como o ambiente da VM LabEx não possui o Docker Compose pré-instalado, vamos instalá-lo primeiro.

Vamos baixar o binário do Docker Compose e torná-lo 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

Após a instalação, podemos verificar a instalação verificando a versão do Docker Compose.

docker-compose --version

Você deve ver as informações da versão impressas no console, confirmando que o Docker Compose está instalado corretamente.

Agora, vamos criar um projeto Compose simples. Criaremos um diretório para nosso projeto e, em seguida, criaremos um arquivo docker-compose.yml dentro dele. Este arquivo definirá os serviços para nossa aplicação.

Primeiro, crie um diretório chamado my-compose-app.

mkdir ~/project/my-compose-app
cd ~/project/my-compose-app

Em seguida, crie um arquivo chamado docker-compose.yml no diretório ~/project/my-compose-app usando o editor nano.

nano docker-compose.yml

Adicione o seguinte conteúdo ao arquivo docker-compose.yml. Este arquivo define um único serviço chamado web que usa a imagem nginx.

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Salve o arquivo e saia do editor nano (Pressione Ctrl + X, depois Y, depois Enter).

Antes de iniciar o serviço, precisamos garantir que a imagem nginx:latest esteja disponível localmente. Podemos baixar a imagem usando o comando docker pull.

docker pull nginx:latest

Agora que temos o arquivo docker-compose.yml e a imagem necessária, podemos iniciar o projeto Compose usando o comando docker-compose up. A flag -d executa os serviços em modo detached (desanexado), o que significa que eles serão executados em segundo plano.

docker-compose up -d

Este comando criará e iniciará o serviço web conforme definido no arquivo docker-compose.yml. Você deve ver a saída indicando que o serviço está sendo criado e iniciado.

Para verificar se o serviço está em execução, você pode usar o comando docker ps para listar os contêineres em execução. Você deve ver um contêiner para o serviço web.

docker ps

Você também pode acessar o servidor web Nginx abrindo um navegador web e navegando até o endereço IP da sua VM LabEx. Como mapeamos a porta 80 do contêiner para a porta 80 do host, você deve ver a página de boas-vindas padrão do Nginx.

Listar projetos Compose em execução usando docker compose ls

Na etapa anterior, iniciamos um projeto Compose de exemplo chamado my-compose-app. Agora, aprenderemos como listar os projetos Compose em execução usando o comando docker compose ls.

O comando docker compose ls é usado para listar todos os projetos Compose. Por padrão, ele mostra apenas os projetos em execução.

Certifique-se de estar no diretório ~/project/my-compose-app onde seu arquivo docker-compose.yml está localizado.

cd ~/project/my-compose-app

Agora, execute o comando docker compose ls.

docker compose ls

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

NAME              STATUS    CONFIG FILES
my-compose-app    running   docker-compose.yml

Esta saída mostra que há um projeto Compose em execução chamado my-compose-app e que ele está usando o arquivo de configuração docker-compose.yml.

O comando docker compose ls é uma maneira rápida de ver quais dos seus projetos Compose estão atualmente ativos e executando contêineres.

Listar todos os projetos Compose, incluindo os parados, usando docker compose ls -a

Na etapa anterior, listamos os projetos Compose em execução. Por padrão, docker compose ls mostra apenas os projetos que têm pelo menos um contêiner em execução. Para ver todos os projetos Compose, incluindo aqueles que estão parados, precisamos usar a flag -a.

Primeiro, vamos parar o projeto my-compose-app que iniciamos na primeira etapa. Certifique-se de estar no diretório ~/project/my-compose-app.

cd ~/project/my-compose-app

Agora, pare o projeto usando o comando docker-compose down. Este comando para e remove os contêineres, redes e volumes criados por docker-compose up.

docker-compose down

Você deve ver a saída indicando que os serviços e recursos estão sendo parados e removidos.

Agora que o projeto está parado, vamos tentar listar os projetos Compose novamente usando o comando padrão docker compose ls.

docker compose ls

Desta vez, você não deve ver o projeto my-compose-app listado porque ele está parado.

Agora, vamos usar o comando docker compose ls -a para listar todos os projetos Compose, incluindo os parados.

docker compose ls -a

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

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

Esta saída mostra que o projeto my-compose-app existe, embora seu status seja exited (parado). A flag -a é útil para ver todos os projetos Compose que você definiu em seu sistema, independentemente de seu estado atual.

Listar apenas os nomes dos projetos usando docker compose ls -q

Nas etapas anteriores, listamos os projetos Compose com seus status e arquivos de configuração. Às vezes, você pode precisar apenas de uma lista dos nomes dos projetos, por exemplo, para usar em um script. O comando docker compose ls -q permite que você faça isso.

A flag -q significa "quiet" (silencioso) e suprime toda a saída, exceto os nomes dos projetos.

Certifique-se de estar no diretório ~/project/my-compose-app.

cd ~/project/my-compose-app

Agora, execute o comando docker compose ls -q.

docker compose ls -q

Você deve ver apenas o nome do projeto Compose impresso no console:

my-compose-app

Isso é útil quando você deseja obter uma lista limpa de nomes de projetos sem nenhuma informação extra. Você pode combinar a flag -q com a flag -a para listar os nomes de todos os projetos Compose, incluindo os parados.

Vamos tentar isso:

docker compose ls -a -q

Você ainda deve ver:

my-compose-app

Isso confirma que a flag -q apenas gera os nomes dos projetos, independentemente de o projeto estar em execução ou parado quando combinado com -a.

Filtrar projetos Compose usando docker compose ls --filter

Nesta etapa final, exploraremos como filtrar a saída de docker compose ls usando a flag --filter. Isso é útil quando você tem muitos projetos Compose e deseja encontrar projetos específicos com base em certos critérios.

A flag --filter permite que você especifique pares chave-valor para filtrar os resultados. Um filtro comum é por status.

Primeiro, vamos garantir que nosso projeto my-compose-app esteja parado. Nós o paramos na etapa anterior, mas é uma boa prática confirmar.

cd ~/project/my-compose-app
docker-compose down

Agora, vamos usar a flag --filter para listar apenas os projetos Compose em execução. Como nosso projeto está parado, este comando não deve mostrar nenhum resultado.

docker compose ls --filter status=running

Você não deve ver nenhuma saída, pois não há projetos Compose em execução.

Agora, vamos usar a flag --filter para listar apenas os projetos Compose parados.

docker compose ls --filter status=exited

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

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

Isso mostra que o projeto my-compose-app está listado porque seu status é exited.

Você também pode filtrar por outros critérios, como o name (nome) do projeto. Vamos filtrar pelo projeto chamado my-compose-app.

docker compose ls --filter name=my-compose-app

Isso também deve mostrar o projeto my-compose-app:

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

A flag --filter fornece uma maneira poderosa de gerenciar e visualizar seus projetos Compose, especialmente em ambientes com muitas aplicações diferentes definidas por arquivos Compose.

Resumo

Neste laboratório, aprendemos como usar o comando docker compose ls para listar projetos Docker Compose. Começamos instalando o Docker Compose e, em seguida, criamos e iniciamos um projeto Compose de exemplo usando um arquivo docker-compose.yml e o comando docker-compose up -d.

Em seguida, exploramos as diferentes opções do comando docker compose ls. Usamos docker compose ls para listar projetos em execução, docker compose ls -a para listar todos os projetos, incluindo os parados, docker compose ls -q para listar apenas os nomes dos projetos e docker compose ls --filter para filtrar projetos com base em critérios específicos. Essas etapas demonstraram a versatilidade do comando docker compose ls para gerenciar e inspecionar projetos Compose.