root@server:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 5e2dfc857e73 5 days ago 261.6 MB
<none> <none> d053e988f23d 5 days ago 261.6 MB
<none> <none> 1d5d4a2d89eb 5 days ago 261.6 MB
<none> <none> ea0d189fdb19 5 days ago 100.5 MB
<none> <none> 26c6175962b3 5 days ago 100.5 MB
<none> <none> 73d5cec4a0b3 5 days ago 100.5 MB
<none> <none> e19590e1bac1 5 days ago 100.5 MB
Eu tentei o seguinte:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
E o seguinte:
docker rmi $(docker images -f "dangling=true" -q)
Obtenha o seguinte erro:
docker: "rmi" requires a minimum of 1 argument.
See 'docker rmi --help'.
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
docker rmi $(docker images -a | grep "^<none>" | awk '{print $3}')
docker rmi $(docker images | grep "<none>" | awk "{print $3}")
docker rmi $(docker images -f dangling=true -q)
docker images
:)Respostas:
Você pode tentar listar apenas imagens não marcadas (aquelas sem rótulos ou com rótulos sem tag):
No entanto, algumas dessas imagens não marcadas podem ser necessárias para outras pessoas.
Prefiro remover apenas imagens pendentes :
Como mencionei para docker 1.13+ em setembro de 2016 em " Como remover imagens Docker antigas e não utilizadas ", você também pode executar o
image prune
comando :Dito isso, Janaka Bandara menciona nos comentários :
Janaka faz referência a " Como remover uma imagem assinada com uma etiqueta " de Paul V. Novarese :
Observe que Paulo também menciona o problema moby 18892 :
fonte
<none>
as imagens marcadas para mim (por exemplofoo/bar:<none>
); Tive que usardocker images --digests
edocker rmi foo/bar@<digest>
conforme descrito em success.docker.com/KBase/…sudo docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.35/images/json?filters=%7B%22dangling%22%3A%7B%22true%22%3Atrue%7D%7D: dial unix /var/run/docker.sock: connect: permission denied "docker rmi" requires at least 1 argument. See 'docker rmi --help'. Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] [flags] Remove one or more images
hutber@hutber-blade /var/www/dockerfile-wizard $ sudo docker images --filter "dangling=true" -q --no-trunc sha256:c58f4e4b10b1f862d78f96e90bdf13ffe37993279d0992be46d5c15dad51421e sha256:db28e821bc3f337caf711a664bc529be5db8894dd73c5b013ad814cc1e9fc21b sha256:257936750a7d43ae77c713c2cb18342be935de7d3b8fad23d6664fc64acfe753 sha256:6b815cefeb527885b2b9dd831f7f40b05942f00d1367274833a6274154d8ce43
Você pode tentar isso simplesmente
fonte
--force
no final. Portanto, o comando serádocker images | grep none | awk '{ print $3; }' | xargs docker rmi --force
podar imagem docker remove todas as imagens pendentes (aquelas sem tag). docker image prune -a também removeria quaisquer imagens que não possuíssem um contêiner que as utilizasse.
A diferença entre imagens pendentes e não utilizadas é explicada neste thread stackoverflow .
fonte
Você pode ir
docker rmi $(docker images -f "dangling=true" -q)
. Veja a documentação das imagens para mais opções.fonte
De acordo com a documentação do docker, você pode listar apenas imagens não marcadas (pendentes) com
e redirecioná-los para o
docker rmi
comando assim:Observe o
-q
parâmetro que mostra apenas IDs numéricos de contêineres.fonte
Você pode usar
--force
para não solicitar confirmaçãofonte
Achei
docker image prune -f
mais útil e uso-o o tempo todo no meu trabalho do dia a dia, usar a tag-f
não pedirá confirmação. Mais detalhes aquifonte
Basta executar este comando:
fonte
Remova as imagens que têm
none
como nome do repositório usando o seguinte:Remova as imagens com
none
tag ou nome de repositório:fonte
fonte
docker system prune
vai resolver o problema, removeMas use, com cuidado!
fonte
Para remover todas as imagens
none
, temos que ter certeza de que removemos todos os contêineres interrompidos que eles podem usar para executar:então podemos remover todas as imagens:
fonte
Para remover imagens pendentes, use:
Consulte minha resposta aqui para uma descrição mais detalhada: https://unix.stackexchange.com/a/445664/292327
fonte
O comando abaixo está funcionando para mim. são apenas imagens grep "" simples e obtêm o id da imagem docker e remove todas as imagens. Comando simples e único, como deve ser.
docker rmi $(docker images |grep "<none>"| awk '{print $3}')
fonte
Esta é uma extensão da resposta de tansadio:
Se você estiver recebendo o seguinte erro:
Você pode forçar com
--force
:fonte
Seguir irá remover todas as
<none>
imagensVocê pode forçar a remoção mudando
docker rmi
paradocker rmi -f
embora eu não recomende fazer isso.Algumas das
<none>
imagens podem estar relacionadas a outras imagens, portanto, por segurança, não use-f
tag.fonte
É simples e claro,
Até eu levei 3 dias para entender este erro simples e nítido.
A imagem docker não foi construída com sucesso
Então removi a 8ª linha do Dockerfile, foi um sinal de sucesso desta vez.
Ele diz dem: expo marcado com sucesso, esta linha é imp durante o processo docker.
fonte
docker rmi -f $ (docker images -a | awk 'NR> 1 && $ 2 == "" {print $ 3}')
fonte
Tudo
Compartilhando o comando PowerShell para amantes do Windows (apenas no caso de você não ter bash, grep ou awk)
fonte
Execute o seguinte comando para remover as imagens com docker rmi
fonte
Remova todos os contêineres de saída
ou remova os recipientes de acordo com um padrão
fonte
tente isso para ver a lista de ID de imagens do docker com tag
<none>
e então você pode excluir todas as imagens com tag
<none>
. isso funcionou para mim.fonte
100% funciona: docker images | grep none | awk '{print $ 3}' | xargs docker rmi -f
fonte
experimentar
docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "<none>" {print $3}')
, embora possa haver comandos mais limposAtualizada
fonte
docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "" {print $3}
não faz nada!Basta remover as imagens usando seus IDs:
fonte
As imagens pendentes são fantasmas das compilações e pulls anteriores, basta excluí-las com: docker rmi $ (docker images -f "dangling = true" -q)
fonte
Declarou as seguintes imagens onde em uso. Acho que esse comando elimina imagens indesejadas.
fonte