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 prune
TÜ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 --all
tü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=true
Filtre 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ı ?