Giriş
Docker, uygulamaların her ortamda tutarlı bir şekilde çalışmasını sağlamak için kullanılan bir konteynerleştirme platformudur. Uygulama geliştirme sürecinde, Docker’ın build işlemleri sırasında oluşturduğu geçici dosyalar ve bağlantılar, build cache olarak bilinen bir sistemde saklanır. Bu cache, sonraki build işlemlerinin daha hızlı gerçekleşmesini sağlarken, zamanla disk alanını doldurabilir ve gereksiz dosyaların birikmesine yol açabilir. Bu nedenle, build cache’in temizlenmesi, hem disk alanını yönetmek hem de sistemin sağlığını korumak açısından önemlidir.
Docker Build Cache Nedir?
Docker build cache, Docker image oluştururken kullanılan ara katmanların ve dosyaların birikimidir. Her Dockerfile talimatı, bir katman oluşturur ve bu katmanlar, daha sonraki build işlemlerinde tekrar kullanılabilir. Bu durum, değişmeyen dosyaların ve talimatların yeniden işlenmesini önleyerek hız kazandırır. Ancak, projenin büyümesi ve değişmesiyle, bu cache içerisinde kullanılmayan veya eski katmanlar birikmeye başlayabilir ve bu da sistem üzerinde gereksiz yük oluşturur.
Build Cache Temizleme Yöntemleri
Docker build cache’i temizlemek için birkaç farklı yöntem bulunmaktadır. Bu yöntemler, kullanıcı ihtiyaçlarına ve sistemin durumuna göre değişiklik gösterebilir.
Docker Builder Prune Komutu
Docker, build cache’i temizlemenin en yaygın yolu, `docker builder prune` komutunu kullanmaktır. Bu komut, kullanılmayan tüm build cache katmanlarını ve ara dosyaları sistemden kaldırır. Aşağıdaki basit komut ile bu işlem gerçekleştirilebilir:
“`bash
docker builder prune
“`
Bu komut çalıştırıldığında, hangi build cache’in temizleneceği ve hangi dosyaların sistemde kalacağına dair bir onay istenir. Kullanıcı ‘y’ tuşuna basarak işlemi onaylayabilir.
Belirli Bir Tarihten Eski Cache’i Temizleme
Eğer yalnızca belirli bir tarihten eski build cache katmanlarının silinmesi gerekiyorsa, `–filter` parametresi kullanılabilir. Bu parametre, belirli bir tarihten önce oluşturulmuş katmanları hedef alır. Örneğin:
“`bash
docker builder prune –filter “until=24h”
“`
Bu komut, son 24 saatte oluşturulmuş build cache katmanları haricindeki tüm katmanları silecektir.
Docker System Prune Komutu
Build cache’i temizlemenin bir diğer yolu ise `docker system prune` komutunu kullanmaktır. Bu komut, yalnızca build cache değil, aynı zamanda kullanılmayan tüm imajları, konteynerleri ve ağları da kaldırır. Aşağıdaki komut bu işlemi gerçekleştirir:
“`bash
docker system prune
“`
Bu komut çalıştırıldığında, kullanıcıdan onay istenir ve kullanıcının onayı alındıktan sonra gereksiz olan tüm elemanlar kaldırılır.
Belirli Türdeki Yüklemeleri Temizleme
Docker ayrıca belirli türlerdeki yüklemeleri temizlemek için çeşitli seçenekler sunar. Örneğin, kullanılmayan binlerce konteyner, ağ veya imaj temizlenmek istendiğinde, aşağıdaki gibi bir komut kullanılabilir:
“`bash
docker container prune
docker volume prune
docker image prune
“`
Bu komutlar, yalnızca ilgili öğelerin temizlenmesini sağlar.
İyi Uygulamalar
Docker build cache temizliğinin yapılması, düzenli olarak gerçekleştirilmeli ve özellikle büyük projelerde kontrol altında tutulmalıdır. Disk alanı yönetimi açısından, düzenli aralıklarla build cache’in kontrol edilmesi ve gereksiz dosyaların kaldırılması önerilir. Ayrıca, otomasyon araçları veya CI/CD süreçleri içerisinde bu komutların yer alması sağlanarak düzenli bir bakım yapılabilir.
Sonuç
Docker build cache’in temizlenmesi, yalnızca disk alanını yönetmekle kalmaz, aynı zamanda sistemin performansını artırır. Farklı yöntemlerle, kullanıcı ihtiyaçlarına göre uygun temizlik işlemleri gerçekleştirilebilir. `docker builder prune`, `docker system prune` gibi komutlarla kullanıcı, gereksiz build cache katmanlarını güvenli ve hızlı bir şekilde kaldırabilir. Böylece sistemde biriken gereksiz dosyaların önüne geçilmiş olur ve Docker ortamının sağlıklı bir şekilde çalışması sağlanır.