Eylül 2016 Güncellemesi: Docker 1.13: PR 26108 ve taahhüt 86de7c0 , docker daemon verilerinin diskte ne kadar yer kapladığını görselleştirmeyi ve "gereksiz" fazlalığı kolayca temizlemenizi sağlayan birkaç yeni komut sunuyor.
docker system pruneTÜM sarkan verileri silecektir (örn. Sırayla: kapsayıcılar durdu, kapsayıcı olmayan hacimler ve kapsayıcı olmayan görüntüler). Seçeneksiz kullanılmayan veriler bile -a.
Ayrıca:
İçin kullanılmayan görüntüler, kullanım docker image prune -a(sarkıtıyordu çıkarmak için ve ununsed görüntüleri).
Uyarı: ' kullanılmayan ', "herhangi bir kap tarafından referans alınmayan resimler" anlamına gelir: kullanmadan önce dikkatli olun -a.
Gösterildiği gibi AL 'ın cevabı , docker system prune --alltüm kaldıracaktır kullanılmayan sadece biraz fazla olabilir olanlar ... sarkan değil görüntüleri.
Bu seçenekle birleştirmek docker xxx prune, budamayı sınırlamak için harika bir yol olabilir ( minimum docker SDK API 1.28, bu nedenle docker 17.04+ )--filter
Şu anda desteklenen filtreler:
until (<timestamp>) - yalnızca verilen zaman damgasından önce oluşturulan kapsayıcıları, resimleri ve ağları kaldırın
label( label=<key>, label=<key>=<value>, label!=<key>, Veya label!=<key>=<value>) - sadece (veya konteynerler, resimler, ağların ve hacimleri kaldırmak olmadan durumda, label!=...kullanılan) Belirtilen etiketleri.
Örnek için bkz. " Görüntüleri budama ".
Orijinal cevap (Eylül 2016)
Genellikle yaparım:
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Bu [sarkan görüntüleri] 13 kaldırmak için bir takma adım var :drmi
dangling=trueFiltre kullanılmayan görüntüleri bulur
Bu şekilde, etiketli bir görüntü tarafından artık referans verilmeyen herhangi bir ara görüntü kaldırılır.
Çıkarılan işlemler (kapsayıcılar) için önce aynısını yaparım
alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'
As haridsv dışarı noktalarında yorumlarda :
Teknik olarak, görüntüleri temizlemeden önce kapları temizlemelisiniz, çünkü bu daha sarkan görüntüleri ve daha az hatayı yakalayacaktır .
Jess Frazelle (jfrazelle) sahip bashrc fonksiyonu :
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
}
Eski görüntüleri kaldırmak için ve sadece "referansı olmayan-sarkan" görüntüleri kaldırmak için şunları düşünebilirsiniz docker-gc:
Basit bir Docker konteyner ve görüntü çöp toplama komut dosyası.
- Bir saatten uzun bir süre önce çıkış yapan kaplar kaldırılır.
- Bundan sonra kalan kapsayıcıya ait olmayan görüntüler kaldırılır.
"dangling=true"Gerçekten ne anlama geldiğine dair belgeler var mı ?