3
respostas

Erro ao tentar apagar containers e images

Olá pessoal,

Tentei rodar os comandos para apagar containers e images, porém estou recebendo esse erro:

C:\>docker container rm $(docker container ls -aq)
unknown shorthand flag: 'a' in -aq)
See 'docker container rm --help'.

C:\> docker rmi $(docker image ls -aq)
unknown shorthand flag: 'a' in -aq)
See 'docker rmi --help'.

Tem alguma ideia ?, desde já agradeço.

3 respostas

Olá, Antonio! O erro que você está recebendo indica que o Docker não está reconhecendo a flag -aq corretamente. Vamos tentar resolver isso de algumas maneiras:

  1. Verifique a versão do Docker: Certifique-se de que você está usando uma versão do Docker que suporte esses comandos. Você pode verificar a versão do Docker com:

    docker --version
    
  2. Utilize comandos alternativos: Em vez de usar a substituição de comandos com $(), você pode tentar usar um loop em shell. Aqui estão os comandos alternativos:

    Para remover todos os containers:

    docker container ls -aq | ForEach-Object { docker container rm $_ }
    

    Para remover todas as imagens:

    docker image ls -aq | ForEach-Object { docker rmi $_ }
    
  3. Verifique o shell que você está usando: Se você estiver usando o PowerShell no Windows, a sintaxe pode ser um pouco diferente. Tente os comandos acima no PowerShell.

  4. Uso do --force: Se você ainda enfrentar problemas, pode ser necessário forçar a remoção das imagens, como mencionado na aula:

    docker rmi $(docker image ls -aq) --force
    

Bons estudos!

Olá @Lucas Ribeiro Mata, obrigado pelo retorno.

A versão que tenho instalada é Docker version 27.0.3, build 7d4bcd8. Infelizmente esse outro comando também não funcionou.

C:\Program Files>docker container ls -aq | ForEach-Object { docker container rm $_ } 'ForEach-Object' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.

Tem alguma ideia do que pode estar ocorrendo ?

Olá, Antonio!

Recomendo que utilize o Docker no Windows usando o WSL (Windows Subsystem for Linux). O WSL permite rodar um ambiente Linux diretamente no Windows, o que facilita o uso de ferramentas e comandos comuns em sistemas Linux, incluindo o Docker.

Para instalar o WSL, abra o PowerShell como Administrador e execute o seguinte comando:

wsl --install

Você pode escolher uma distribuição Linux (como Ubuntu) a partir da Microsoft Store.

Abra a sua distribuição Linux (por exemplo, Ubuntu) e execute os seguintes comandos para verificar se o Docker está funcionando corretamente:

docker --version
docker run hello-world

Bons estudos!