- Bulut sunucuları ve VPS'ler için Docker temizliği neden kritik öneme sahiptir?
- Konteynerleri, görselleri ve dosyaları temizlemenin genel ve güvenli bir yolu.
- Temizliğin ana adımları
- Pratik örnekler ve senaryolar
- Güvenlik ipuçları ve en iyi uygulamalar
- Üretim modunda temizlik işlemi çalıştırma — kontrol listesi
- Faydalı araçlar ve komut dosyaları
- Bulut Altyapısı, VPS ve Kurumsal Hizmetler İçin İpuçları
- Sık karşılaşılan hatalar ve bunların nasıl düzeltileceği
- Çözüm
- Destek ekibiyle iletişime geçin ve bakım işlemlerini koordine edin.
Bulut sunucuları ve VPS'ler için Docker temizliği neden kritik öneme sahiptir?
Düzenli Docker temizliği şunları sağlar: Kök (/) bölümünün dolmasını engelleyin., CI/CD ve Koşucu performansını iyileştirme Ve Azaltılmış kırılganlık Bulut sunucularında depolama maliyetleri ve IOPS artabilir, bu nedenle disk alanını boşaltmak önemli olabilir. Maliyet tasarrufu Ve yönetmesi kolay.
Konteynerleri, görselleri ve dosyaları temizlemenin genel ve güvenli bir yolu.
Aşağıda, güvenlik ve yedeklemelere vurgu yapılarak adım adım talimatlar verilmiştir. Üretim ortamında herhangi bir işlem yapmadan önce mutlaka yedekleme yapın ve bakım planlaması gerçekleştirin.
Temizliğin ana adımları
1. Mevcut durumu gözden geçirin.
Öncelikle, daha güvenli kararlar verebilmek için Docker konteynerlerinin, imajlarının, disk birimlerinin ve disk kullanımının durumunu kontrol edin.
docker ps
docker ps -a
docker images -a
docker system df
docker volume ls2. Yedekleme (birimleri silmeden önce gereklidir)
Eğer disk birimleri önemli veriler içeriyorsa, bunların yedeklerini aldığınızdan veya sağlayıcının panelindeki Blok Depolama anlık görüntülerini kullandığınızdan emin olun.
docker run --rm -v my_volume:/data -v $(pwd):/backup alpine tar czf /backup/my_volume_backup.tar.gz -C /data .3. Silmeden önce konteynerleri durdurma
Konteynerleri güvenli bir şekilde durdurun; gerekirse zorla çıkarma yöntemini dikkatli bir şekilde kullanın.
docker stop <container_id>
docker rm -f <container_id>4. Konteynerleri silin
Tek tek konteynerleri veya durdurulmuş tüm konteynerleri silebilirsiniz.
docker rm <container_id>
docker container prune
# یا:
docker rm $(docker ps -a -q)5. Resimleri silin
Kullanılmamış resimler veya sallanan Sil. Gerekirse zorla sil, ancak bağımlılıklara dikkat et.
docker rmi <image_id_or_tag>
docker rmi $(docker images -a -q)
docker image prune6. Birimleri silin
Disk birimlerini silmek kalıcı verileri yok edebilir. Disk birimlerini silmeden önce yedekleme veya anlık görüntü alın.
docker volume rm <volume_name>
docker volume prune
docker system prune --volumes7. Gereksiz ağları kaldırın
docker network prune8. Maksimum alan açmak için her şeyi silin.
Mümkün olduğunca fazla alan kazanmanız gerekiyorsa, aşağıdaki komutu kullanın, ancak çok dikkatli olun.
docker system prune -a --volumes
Pratik örnekler ve senaryolar
Senaryo 1 — Geliştirme sunucusunda (yerel/test) güvenli temizlik
Docker-compose tarafından oluşturulan tüm kaynakları kaldırmak için aşağıdaki komutu kullanın.
docker-compose down --rmi all -v --remove-orphansAçıklama: –rmi hepsi Compose tarafından oluşturulan görüntüleri siler. -v Birimleri siler ve --yetimleri kaldır Yetim konteynerleri siler.
Senaryo 2 — GitLab CI çalıştırıcıları ve otomatik temizleme
İşlerin sonunda veya cron aracılığıyla periyodik temizlik yapmak, çalıştırıcıların yeterli alanla çalışabilmesi için en iyisidir.
docker system prune -a --volumes -f0 3 * * * root /usr/bin/docker system prune -a --volumes -f >/dev/null 2>&1Senaryo 3 — Ağır görseller içeren GPU/Yapay Zeka sunucusu
Makine öğrenimi (ML) görselleri genellikle büyüktür; yalnızca gerekli sürümleri saklamanız ve modeller için anlık görüntüler (snapshot) kullanmanız önerilir. Ayrıca, Dockerfile'da uygun katmanlama ve önbellek temizleme işlemlerini kullanın.
RUN apt-get update && apt-get install -y ... && rm -rf /var/lib/apt/lists/*
Güvenlik ipuçları ve en iyi uygulamalar
İşte riskleri azaltmak ve depolama alanını daha iyi yönetmek için pratik ipuçlarının bir özeti.
- Bir diski silmeden önce mutlaka yedeğini alın. Veritabanları için mysqldump, pg_dump veya snapshot kullanın.
- Komutlardan budamak Üretim ortamlarında dikkatli kullanın ve politikalar ile insan onayını tanımlayın.
- Ciltlerin ve görsellerin isimlendirilmesinde tutarlılığı koruyun (örneğin, proje_ortamı_hizmet_tarihi).
- Daha iyi yönetim için etiketler kullanın:
docker ps -a --filter "label=project=myproject"" - Dizin
/var/lib/dockerYönetimi kolaylaştırmak için ayrı bir birime taşıyabilirsiniz. - İzleme, aşağıdaki gibi araçlarla yapılır: cadvisor Ve Prometheus Diskin dolu olması durumunda uyarı ayarlamak da çok önemlidir.
- Görüntülerin güvenlik taraması, aşağıdaki gibi araçlarla yapılır: Claire, Önemsiz Bilgiler Veya Snyk İşlem tamamlanır ve risk altındaki görüntüler kaldırılır veya güncellenir.
Üretim modunda temizlik işlemi çalıştırma — kontrol listesi
Hizmet riskini azaltmak için aşağıdaki kontrol listesi uygulanmalıdır.
- Kritik görüntüleri ve hacimleri belirleme
- Yedekleme ve anlık görüntü hazırlığı
- Ekip bildirimi ve bakım penceresi planlaması
- Gerekirse hizmetleri durdurun veya trafiği yönlendirin.
- Silme işlemlerini şu sırayla gerçekleştirin: kapsayıcıları durdurup silin, gereksiz imajları silin, birimleri ve ağları silin.
- Hizmetleri yeniden başlatın ve günlükleri kontrol edin.
- Temizleme sonrası izleme
Faydalı araçlar ve komut dosyaları
Aşağıdaki araçlar ve komut dosyaları, temizleme ve güvenlik kontrollerini otomatikleştirmede faydalıdır.
- docker-gc: Görüntü ve konteynerlerin çöp toplama işlemi için genel araç.
- önemsiz / clair: Görüntülerin güvenlik taraması için.
- systemd zamanlayıcısı: Docker system prune komutunu periyodik olarak çalıştırmak için.
- Bash betiği kullanarak, gerçek çalıştırmadan önce günlük kaydı tutma ve deneme çalıştırma işlemleri gerçekleştirme.
#!/bin/bash
echo "Dry run: will remove the following images:"
docker images -f dangling=true
read -p "Proceed? y/N" ans
if [[ $ans == "y" ]]; then
docker image prune -f
fi
Bulut Altyapısı, VPS ve Kurumsal Hizmetler İçin İpuçları
Dağıtılmış sunucularda, temizleme politikasının tüm düğümlere uygulandığından emin olun. İşleme veya yapay zeka gibi ağır iş yükleri için, Docker'ı kaldırmanın diğer servislerdeki verileri etkilememesi için ayrı bir depolama alanı (NVMe veya Blok Depolama gibi) kullanmak daha iyidir.
Alım satım ve oyun amaçlı kullanılan VPS'lerde, boş disk alanını korumak ve düzenli temizlik yapmak gecikmeyi azaltacak ve konteyner başlatma hızını artıracaktır.
Karmaşık veya büyük bir temizlik işlemine ihtiyacınız varsa, bakım penceresi içinde işlemleri gerçekleştirmek ve bir anlık görüntü hazırlamak için ilgili ekipten yardım isteyin.
Sık karşılaşılan hatalar ve bunların nasıl düzeltileceği
- Hata: Çakışma: Yerel bir depoda etiketlendiği için depo referansı kaldırılamıyor. Çözüm: Yerel etiketi kaldırın veya kullanın
docker rmi -f. - Hata: Konteyner tarafından kullanılan hacim — Çözüm: Öncelikle, birimi kullanan kapsayıcıyı belirleyin ve durdurun/kaldırın:
docker ps -a --filter volume=. - İstenmeyen veri silme: Çözüm: Düzenli yedeklemeler ve bulut hizmeti anlık görüntülerinden yararlanmak.
Çözüm
Düzenli Docker temizliği, hizmetlerin sürdürülmesi ve maliyet ile performansın optimize edilmesi için önemli bir unsurdur. Tanımlama, yedekleme, hizmetleri durdurma ve imajları, konteynerleri ve birimleri güvenli bir şekilde silme adımlarının doğru bir şekilde uygulanması, bozulma ve veri kaybı riskini azaltır. Bir temizlik politikasına sahip olmak ve bunu otomatikleştirmek, özellikle birden fazla lokasyona sahip bulut ve VPS ortamlarında çok önemlidir.
Destek ekibiyle iletişime geçin ve bakım işlemlerini koordine edin.
GitLab CI, çalıştırıcılar veya GPU sunucuları için büyük çaplı bir temizlik yapmanız veya otomatik komut dosyaları kurmanız gerekiyorsa, bakım penceresi işlemlerini gerçekleştirmek ve anlık görüntüler almak için destek ekibiyle iletişime geçebilirsiniz.









