The Dive , Docker imajının her katmanını tanımlamanın yolunu arayan kişilere yardımcı olur. Bunun nedeni, imaj boyutunu küçültmek veya her katmanın işlevini anlamak olabilir.
Dive aracı, özellikle temel imajı takip eden bir Docker imajında (her katmanda) yapılan değişiklikler hakkında fikir edinmekten hoşlananlar için mükemmel bir araçtır.
Aşağıdaki resme bir göz atın!

Yukarıdaki resimde gösterilen bilgilerin karışık olabileceğini biliyorum .
Vurgulanan ilk alanı incelerseniz, seçilen imajdaki tüm katmanları görüntülerken, vurgulanan ikinci alan her katman tarafından yapılan tüm değişiklikleri (yeşil ve sarı ile işaretlenmiş) gösterir.
Standart kullanıcılar bu bilgiyi büyüleyici bulamazken, bir uzman onu çok ilginç bulabilir ve Docker görüntülerinin iç işleyişini keşfedebilir.
Bu nedenle, Dive aracını tercih ettiğiniz Linux dağıtımına nasıl kuracağınızı öğrenmek için bu makaleyi okumaya devam ve en sevdiğiniz Docker görüntüsünün her katmanını keşfetmek için kullanın.
Linux’ta Dive Aracı Nasıl Kurulur
Bu aracın en büyük avantajlarından biri, kurulumdaki esnekliğidir ve size birkaç seçenek sunar. Öyleyse başlayalım…
Dive’ı Ubuntu veya Debian tabanlı Bir Dağıtıma Yükleme
Kurulum adımları çok basittir; Sadece terminalinizi açın ve aşağıdaki komutları birbiri ardına çalıştırın ve işiniz bitti.
$ export DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
$ curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb
$ sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.debFedora veya Red Hat tabanlı Bir Dağıtıma Dive Yükleme
RHEL ve Fedora sistemlerinde başlamak için terminalinizi açın ve sırayla aşağıdaki komutları çalıştırın:
$ export DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
$ curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.rpm
$ rpm -i dive_${DIVE_VERSION}_linux_amd64.rpmDive’ı Arch veya Manjaro tabanlı Bir Dağıtıma Yükleme
Bir Arch kullanıcısıysanız, bu araç Arch Extra deposunda bulunduğundan ve gösterildiği gibi Pacman kullanılarak kolayca kurulabilmaktedir.
$ pacman -S diveHomebrew üzerinden Dive kurulumu
Mac kullanıyorsanız veya Linux sisteminizde Brew paket yöneticisi yüklüyse, Dive’ı yüklemek için aşağıdaki komutu kullanabilirsiniz:
$ brew install diveGit üzerinden Dive yükleme
Bunu çalıştırmak için sisteminizde Go yüklü olması gerekir. Lütfen devam etmeden önce kurulduğundan emin olun.
$ go get github.com/wagoodman/diveDocker Komutuyla Dalış Yükleme
Dive’ı bir Docker imajı olarak ayarlamak ve kullanmak için, gösterildiği gibi kabuk yapılandırma dosyanızdaki “dive” takma adını tanımlayabilirsiniz.
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"Yukarıdaki komutu ilk çalıştırdığınızda Dive imajı indirilecektir.
Dive Aracının Kullanımı
Dive komutuna bir Docker deposu atayarak başlayabilirsiniz; Belirtilen imaj zaten yerel olarak mevcutsa, kullanılacaktır; aksi takdirde, Docker Hub’dan indirilecektir (varsayılan).
$ dive nginx:latestÇıktı:

Görüntü yerel olarak bulunamadı, bu yüzden Docker hub’dan indirmeye başladı.
İmaj indirme hakkında konuşurken, varsayılan olarak kaynak olarak Docker Hub’ı kullanır, ancak” — source ” parametresini kullanarak kolayca farklı bir kaynağa değiştirebilirsiniz.
$ dive <your-image> --source <source>
#OR
$ dive <source>://<your-image>İmaj indirildikten sonra, aşağıdaki ekrana yönlendirileceksiniz:

Dalış aracı ekranı öncelikle beş bölüme ayrılmıştır; Onları ayrı ayrı anlayalım.
- Layers son imajı oluştururken kullanılan tüm çeşitli katmanları görüntüler ve ilk katman tipik olarak temel görüntüdür 🍨.
- Current Layer Contents temel imaj (veya ilk katman) dizin yapısını gösterecek ve temel imajda seçilen katman nedeniyle yapılan değişiklikler vurgulanacaktır.
- Layer Details seçilen katmanın belirli etiketlerini, kimliğini, özetini ve komut bilgilerini gösterecektir.
- Image Details seçilen imaj adı, boyutu, boşa harcanan alan (daha azı iyidir) ve verimlilik puanı (daha fazlası iyidir) hakkında kısa bir genel bakış sağlar.
- Navigation area tüm tuş bağlamalarını görüntüler (burada “^” = “Ctrl Tuşu“).
Başlamak için, temel imajda yapılan her katman değişikliğini tanımlamayı kolaylaştırmak için “Geçerli Katman İçeriği“ olarak da adlandırılan sağ bölümdeki genişletilmiş dizin yapısını daraltmanızı öneririm.
Bunu başarmak için görünümü değiştirmek için “Sekme” tuşuna basmanız ve ardından tüm dizinleri daraltmak için “Ctrl+Boşluk” kısayolunu kullanmanız yeterlidir.

Bir kez daha “Layer” görünümüne dönmek için “Sekme” tuşunu kullanın ve Ok tuşunu kullanarak çeşitli katmanlara gidin.

Farklı katmanlar arasında gezinirken, belirli bir katmanda duraklatma seçeneğiniz vardır (kırmızı kutu ile işaretlenmiştir).
“Geçerli Katman İçeriği” bölümünü incelediğinizde, seçilen katmanda gerçekleştirilen tüm değişikliklerin vurgulandığını göreceksiniz.
Tüm katmanlar tarafından yapılan tüm toplu imaj değişikliklerini tek seferde “Katmanlar” ın altına kaydırarak ve ardından “Ctrl+A” kısayol tuşunu kullanarak da görüntüleyebilirsiniz.

İnceleme işlemi sırasında oldukça yararlı olabilecek aşağıdaki kısayol tuşları listesine de başvurabilirsiniz:
| Kısayol Tuşu | Tanım |
|---|---|
| Ctrl + C | Quit |
| Tab | Katman ve dosya ağacı görünümleri arasında geçiş yapma |
| Ctrl + F | Sağlanan anahtar kelimeye göre dosyaları filtreleyin |
| Ctrl + A | Tüm toplu görüntü değişikliklerini görüntüleme |
| Ctrl + L | Geçerli katman değişikliklerini görüntüleme |
| Space | Bir dizini daraltma/daraltma |
| Ctrl + Space | Tüm dizinleri daralt/çöz |
| Ctrl + U | Yalnızca değiştirilen dosyaları göster / gizle |
| Ctrl + B | Katmanlar içeriğinden “İzin“, “Kullanıcı Kimliği:GİD“ ve “Boyut” sütunlarını kaldırın ve yalnızca dosya özniteliklerini görüntüleyin |
| Ctrl + R | Kaldırılan dosyaları göster / gizle |
| Ctrl + M | Değiştirilen dosyaları göster / gizle |
Bu, Dive aracıyla daha sonraki yolculuğunuzda size rehberlik etmek için yeterli olacaktır.
Ancak, bu makaleyi tamamlamadan önce, seçilen imajda gereksiz yer kaplayan tüm atık dosyaları incelemek için “dive” komutuna “CI=true” ekleyebileceğinizi de belirtmek isterim (bu, kullanıcı arayüzüne olan ihtiyacı atlar).
$ CI=true dive nginx:latestÇıktı:

Yazının orijinalini buradan okuyabilirisniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.