Docker imajlarını ve katman içeriklerini inceleme aracı 'Dive'
(github.com/wagoodman)Docker imaj inceleme aracı dive
- Docker imaj analizi:
divekomutu ve imaj etiketi/ID/digest kullanılarak Docker imajları analiz edilebilir. - Docker komutunu doğrudan kullanma:
aliasayarlayarakdivedoğrudan bir Docker komutu gibi kullanılabilir. - Macbook üzerinde derleme: Yalnızca Docker container engine destekleyen Macbook'larda
diveile imaj derleme ve analiz yapılabilir. - CI pipeline entegrasyonu:
CI=trueortam değişkeni ayarlanarak UI olmadan imaj analizi yapılabilir ve alan israfı en aza indirilebilir.
Temel özellikler
- Katman bazında Docker imaj içeriğini gösterme: Seçilen katmanın içeriği ve önceki katmanla birleşmiş içerik sağ tarafta görüntülenebilir.
- Her katmanda değişen içeriği gösterme: Dosya ağacında değiştirilen, güncellenen, eklenen veya silinen dosyalar gösterilir.
- "İmaj verimliliği" tahmini: İmaj içindeki israf edilen alan miktarı tahmin edilerek verimlilik puanı ve boşa harcanan dosya alanı sunulur.
- Hızlı derleme/analiz döngüsü:
dive build -t some-tag .komutuyla Docker imajı derlendikten hemen sonra analiz edilebilir. - Çeşitli imaj kaynakları ve container engine desteği:
--sourceseçeneğiyle container imajının hangi kaynaktan alınacağı seçilebilir.
Kurulum yöntemleri
- Ubuntu/Debian:
curlveaptkullanılarakdivekurulabilir. - RHEL/Centos:
curlverpmkullanılarakdivekurulabilir. - Arch Linux:
pacmanüzerinden kurulabilir. - Mac: Homebrew veya MacPorts kullanılabilir ya da release sayfasından Darwin build indirilebilir.
- Windows: En güncel release indirilebilir.
- Go tools: Go sürüm 1.10 veya üzeri gerekir,
go getile kurulabilir. - Nix/NixOS:
nix-envkullanılarak kurulabilir. - Docker: İmaj
docker pullile çekilip Docker socket dosyası eklenerek çalıştırılabilir.
CI entegrasyonu
CI=trueortam değişkenini ayarlama: UI olmadan Docker imajı analiz edilir ve geçme/kalma durumu dönüş koduyla gösterilir..dive-cidosyasıyla kural ayarlama: Verimlilik, israf edilen alan miktarı ve oranına göre geçme/kalma kriterleri tanımlanabilir.
Tuş atamaları
- Çeşitli tuş atamalarıyla UI içinde katman ve dosya ağacı görünümleri kontrol edilebilir.
UI ayarları
- Yapılandırma dosyası üzerinden çeşitli seçenekler özelleştirilerek
divedavranışı değiştirilebilir.
GN⁺ görüşü
- Önemi:
dive, Docker imaj boyutunu optimize etmek ve israfı azaltmak için son derece faydalı bir araçtır. Bu da bulut altyapı maliyetlerini düşürmeye ve kaynakların daha verimli yönetilmesine katkı sağlayabilir. - İlgi çekici yanı: Docker imajının her katmanını ayrıntılı biçimde analiz edebilmesi ve değişiklikleri görsel olarak gösterebilmesi, geliştiriciler ve sistem yöneticileri için oldukça ilgi çekicidir.
- Faydası:
diveın CI/CD pipeline'ına entegre edilmesiyle otomatik imaj analizi üzerinden sürekli kalite kontrolü ve verimlilik artışı sağlanabilir.
1 yorum
Hacker News görüşleri
Crane ve go-containerregistry kütüphanesi
environment variable, label, entrypoint vb.) değiştirmek mümkün.Dive'ın faydası
Dive'ın gizli özelliği
Neden GoLang kullanıldığına dair soru
Dive'ın pratikliği
Google'ın container-diff aracı
bash'e pipe etmeden önce kontrol etmek için faydalı.Diğer harika TUI terminal araçları
Docker'ın neden tar arşivleri kullandığı
Dive'ın şaşırtıcı etkisi