Atualização em setembro de 2016: o Docker 1.13: PR 26108 e o commit 86de7c0 apresentam alguns novos comandos para facilitar a visualização de quanto espaço os dados do daemon do estivador estão ocupando no disco e permitindo limpar facilmente o excesso "desnecessário".
docker system pruneexcluirá TODOS os dados pendentes (ou seja, em ordem: contêineres parados, volumes sem contêineres e imagens sem contêineres). Mesmo dados não utilizados, com -aopção.
Você também tem:
Para imagens não utilizadas , use docker image prune -a(para remover imagens pendentes e não utilizadas).
Aviso: ' não utilizado ' significa "imagens não referenciadas por nenhum contêiner": tenha cuidado antes de usar-a .
Como ilustrado na AL 's resposta , docker system prune --allirá remover todos os não utilizados imagens não apenas balançando aqueles ... que pode ser um pouco demais.
Combinar docker xxx prunecom a --filteropção pode ser uma ótima maneira de limitar a remoção ( docker SDK API 1.28 no mínimo, portanto docker 17.04+ )
Os filtros atualmente suportados são:
until (<timestamp>) - remova apenas contêineres, imagens e redes criadas antes do carimbo de data / hora
label( label=<key>, label=<key>=<value>, label!=<key>Ou label!=<key>=<value>) - só remover os recipientes, imagens, redes e volumes com (ou sem , no caso label!=...é usado) os rótulos especificados.
Consulte " Remover imagens " para obter um exemplo.
Resposta original (setembro de 2016)
Eu costumo fazer:
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Eu tenho um apelido para remover essas [imagens pendentes] 13 :drmi
O dangling=truefiltro encontra imagens não utilizadas
Dessa forma, qualquer imagem intermediária que não seja mais referenciada por uma imagem rotulada será removida.
Eu faço o mesmo primeiro para processos encerrados (contêineres)
alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'
Como haridsv aponta nos comentários :
Tecnicamente, você deve primeiro limpar os contêineres antes de limpar as imagens, pois isso captura mais imagens pendentes e menos erros .
Jess Frazelle (jfrazelle) tem a função bashrc :
dcleanup(){
docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null
docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null
}
Para remover imagens antigas e não apenas imagens "pendentes não referenciadas", considere docker-gc:
Um contêiner Docker simples e um script de coleta de lixo de imagens.
- Os contêineres que saíram há mais de uma hora atrás são removidos.
- Imagens que não pertencem a nenhum contêiner restante depois disso são removidas.
"dangling=true"realmente significa?