Otomatik Docker Cleanup Disk Uzay Yönetimi için Temeldir
Docker konteynerleri uygulama geliştirme, test ve dağıtım için hafif, tutarlı bir ortam sunar. Ancak, hızla yukarı doğru çekilme ve yıpranma ekipmanlarının rahatlığı bir maliyetle gelir: disk blogged temizleyiciler, dangling görüntüleri, kullanılmayan hacimler ve soldan çıkışlar, değerli disk alanı tüketmek.
Tek bir geliştirici iş istasyonu, haftalar içinde kullanılan Docker görüntülerinin ) kullanılmasını veya değiştirilmesini sağlayan, problem ölçekleri hızla sabitlenir ve genellikle otomatik olarak ihmal edilir.In production environment, where container are often updated or changed, the problem scales fast. Manual temizleyici.By implement an otomatik, planlı bir denetim stratejisi uygulayın, en çok önemli konularda bilgi için öngörüyü ve ücretsiz kaynakları ortadan kaldırırsınız: uygulamalarınızı çalıştırın.
Docker'in Temizliği Utilities
Docker, kullanılmamış verileri kaldırmak için bir komut paketi sunar. En güçlü isÖRDÜ:0) konteynerleri, görüntüleri, hacimleri ve ağları hedefleyebilir. Anahtar seçenekleri kıralım:
- [FONT:0] [Döntilmiş konteynerler, tüm baraj görüntüleri ve kullanılmamış ağlar.
- [FONT:0] - Tüm kullanılmamış görüntülerin çıkarılması (sadece dangling olanlar dahil), herhangi bir konteyner tarafından referanslandırılmayan görüntülerin de dahil edilmesi.
- [FONT:0] - Ayrıca kullanılan hacimler (önetici hacimleri kaldırılamaz).
- [FONT:0] – Tüm bayrakları birleştirin: Onay olmadan güç uzaklaştırma, tüm kullanılmamış görüntüler ve hacimler. Bu, temizlenme için nükleer seçenektir.
Daha fazla granular kontrolü için, Docker ayrı komutlar sunar: [[DörtÜŞÜŞÜNÜŞÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN, KAYNAKLAR, KAYNAKLAR KAYNAKLAR KAYNAKLAR KAYNAKLAR KAYNAKLAR KAYNAKLAR KAYNAKLAR KAYNAKLAR KAYNAKLAR KAYNAKLAR KAYNAKLARI KAYNAKLARI KAYNAKLAR KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAYNAKLARI KAY
Adım-by-Step, Cron-Based Otomasyon için Kurulum
Linux sistemleri üzerinde, cron tekrarlanan görevler için en basit zamanlama aracı olmaya devam ediyor.Don automate Docker temizleyici, sadece birkaç satır sizin crontabınızda ihtiyacınız var.
1.Docker Komutanlığının Patlanması
Cron işleri sınırlı bir ortamda çalışır. koşmak tarafından “ŞUYGÜŞÜNCÜSÜŞÜNCÜSÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ
which docker
Tipik olarak bu geri döndürür.) Bu yolu sizin cron komutunuzda kullanın.
2.Bölümünüzü Düzenlemeniz
Run: Run:
crontab -e
Bu ilk kez, bir editör seçmek için talep edilecektir. 2:00 AM'de günlük olarak çalıştırmak için aşağıdaki gibi bir çizgi ekleyin:
0 2 * * * /usr/bin/docker system prune -af --volumes > /dev/null 2>&1
[FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=SNT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=)
3. İşi Test Etmek
cron'a güvenmekten önce, bunun beklendiği gibi çalışmasını sağlamak için komutunu manuel olarak çalıştırın:
sudo /usr/bin/docker system prune -af --volumes
Eğer köksüz bir kurulum kullanıyorsanız, İZFLT:18 eklemek veya gruptaki kullanıcı olarak makle işi çalıştırmak gerekebilir.
Sistemli Zamanlayıcıları ile Gelişmiş Otomasyon
Birçok kişi için cron yeterli olsa da, sistemli zamanlayıcılar daha iyi bir giriş, bağımlılık işleme ve init sisteminin geri kalanıyla entegrasyon sağlar. İşte Docker temizlenme için bir zamanlayıcı nasıl yaratılır.
1. Bir Servis Birimi oluşturun
Aşağıdakileri aşağıdakiler için:
[Unit]
Description=Docker system prune
Wants=docker.service
After=docker.service
[Service]
Type=oneshot
ExecStart=/usr/bin/docker system prune -af --volumes
User=root
StandardOutput=journal
2. Bir Zamanlayıcı Birimi oluşturun
(Resulüm) Bakara:
[Unit]
Description=Run Docker cleanup daily
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
3. Enable ve Timer'ı başlatın
sudo systemctl daemon-reload
sudo systemctl enable docker-cleanup.timer
sudo systemctl start docker-cleanup.timer
Bu yaklaşım sistemli dergiye çıktı ve temizleme işlemine daha kolay hale getirdi.
Yeniden imha Politikaları için Temizleme Filtrelerini yapılandırın
Saldırganlık çoğu gelişim ortamları için güvenlidir, ancak üretim sistemleri kullanılmaktadır.)terektilebilir politikalar[DÜT:1). Örneğin, görüntüleri temizleyebilirsiniz: veya sadece 48 saatten daha eski kaynaklar.
Yaş Tarafından Filtre
Kullanılmamış görüntüler ve konteynerler 24 saatten daha eski:
docker system prune -af --filter "until=24h" --volumes
[FONT: 29] Filtre hem görüntüler hem de konteynerler için çalışır. daha karmaşık kurallar için birden çok kez.
Exclude specific Resources
Docker, inşa edilmiş bir göz ardı listesine sahip değil, ancak siparişi almadan önce etiketleri kontrol etmek için etiketler kullanabilirsiniz (örneğin, [[DüzDÜT:31), sonra negatif bir etiket filtresi (daha önce desteklenen bir çalışma)[Dönemli:2])[Dönemli veya [[Dönemli)[Dönemli)[Dönemli)[Düzücük için bir araç kullanın.[Düzücük[Düzücük[Düzücük|Dönemli)[Düzücük|Düzücük|Düzücük|Düzücük|Düzücük|s|s|s|Düzücük|s-k|Düzücük|Düzücük|D)
Disk Uzayı Takip Et ve Etkililik
Otomasyon sadece izlemeniz kadar iyidir. Her temizlemeden sonra disk kullanımını takip etmek için uyarılar ayarlayın. Basit yaklaşımlar şunları içerir:
- [Kırklı bir iş içinde ve sonuçları kaydeder.
- [FONT:0] docker-system-resource-influx) InfluxDB veya Prometheus'a metrik göndermek için.
- [FONT:0][DÜDÜDÜDÜDÜ:2] ) veya ) Yeni Yenidenlik) zamanında Docker depolamasını görselleştirmek için.
Temizliğiniz çalışırsa, disk kullanımı yüksek kalır, uzayın nerede tüketildiğini görmek için [[ÇI sistemlerinde veya kaldırılmamış büyük hacimlerde önbelleklenir, çünkü hala konteynerler tarafından referanslanırlar.
Üretim Ortamları için En İyi Uygulamalar
1. Her zaman bir Aşamalı Yaklaşımı kullanın
Haftalık kuru kullanım ile başlayın: NourFLT:37 ile birlikte (düşün ne kaldırılacağı görmek için) otomatik silme izin vermeden önce çıktı.
2. CI/CD Boru hatları ile koordinatörü
Eğer inşa sisteminiz birçok geçici görüntüler yaratırsa, düşük boyutlu pencereler sırasında veya düşük boyutlu pencereler sırasında pruningden sonra planlama yapmak hala kullanımda olan orta katmanların kazalarını önlemek için çalışır.
3. Backup critical Data
Veritabanı veya kullanıcı yüklemeleri içeren hacimler, herhangi bir agresif hacimsel kesintiden önce desteklenmeli. Kullanımı Docker hacim yönetim araçları gibi 03.38) ile [[ŞUygunluklar, prune tarafından etkilenmeyecek olan dış depolamayı bağlar.
4.Root Kullanıcısı Olarak Tutunmayı Durdurun
Güvenlik için, gerekli olmadıkça, faks işlerini yürütmekten kaçının. Kullanıcınızı [[ŞUYGÜŞÜŞÜNÜŞÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ
5. Log Cleanup Activity
Kontrol etmek yerine bir günlük dosyaya tekrar yollayın:
0 2 * * * /usr/bin/docker system prune -af --volumes >> /var/log/docker-cleanup.log 2>&1
Düzenli olarak hataları veya beklenmedik kaldırmalar için giriş kontrol edin.
Ortak Pitfalls ve Them'dan Nasıl Kaçırmak
- [FONT:0)Ortak katmanların çoğu zaman inşa edilmesi gerekli olan, kısa bir süre önce inşa ederseniz, filtre veya koşuşturma işlemi olmadan değiştirilebilir.
- [FONT:0] Önemli devlet içeren Volumes[Dönetici: Varsayılan olarak, [[Dönemli: 5,5-Zemin) sadece o bayrakları ekleyemiyorsan, o bayrakları geri alır.
- [FONT:0) Ağ, konteyner bağlantısını kırıyor : [[Ücretsiz ağları kaldırıyor. Özel bir ağ artık herhangi bir konteyner tarafından referans alınmıyorsa, gelecekteki konteyner startup'u kırıyor.
- [FONT:0]Cron çevre sorunları[[[Dönetici: 1 ): Docker, kromozomun çalıştığı zaman PATH'de olmayabilir. Her zaman ikiliye tam yolu kullanın.
Alternatif Araçlar ve Yaklaşımlar
Yerli Docker komutları çoğu ihtiyacı kapsaırken, birkaç üçüncü taraf araç gelişmiş özellikler sağlar:
- [FONT:0]Watchtower) - Automates mevcut koşu konteynerleri takip ediyor ve güncelleştirmelerden sonra eski görüntüleri temizleyebilir.
- [FONT:0])Portainer) - Planlanan temizleme özelliği içeren bir web UI.
- [FONT:0]docker inşaatçı prune[[D:2])[özellikle CI/CD boru hatlarında muazzam olan önbellek inşa etmek için önbellek inşa etmek.
Kubernetes ortamları için, [[0)kubelet çöp toplama [Dönetici:2) ve [Dörtüncü Seviyeye Sahip Olduğumuza Kadar Yapılabilir[DÜye Olmayanlara Göre İşsizliğe Değer Verilmişler)
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Docker konteyneri temizlenme, ihtiyacınız olan verileri kaldırma riski ile düzenli olarak basit ama kritik bir uygulamadır. nakavtları, sistemli zamanlayıcıları veya üçüncü taraf bir araçla, disk alanı asla bir şişenck ve konteynerinizin sessiz kalmasını sağlar.