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:

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.