Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
dive — डॉकर इमेज में प्रत्येक लेयर का अन्वेषण करने के लिए एक उपकरण | Kitploit
उपकरण/GitHubGitHub/wagoodman/dive
सामान्य उपयोगिताएँकंटेनर सुरक्षा
GitHubwagoodman/dive

dive

डॉकर इमेज में प्रत्येक लेयर का अन्वेषण करने के लिए एक उपकरण

रिपॉजिटरी देखें
54.4k2.0k1 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

dive

GitHub release Validations Go Report Card License: MIT Donate

एक उपकरण जो Docker इमेज, लेयर सामग्री की खोज करने और आपकी Docker/OCI इमेज के आकार को कम करने के तरीके खोजने में सहायता करता है।

Image

Docker इमेज का विश्लेषण करने के लिए बस एक इमेज टैग/आईडी/डाइजेस्ट के साथ dive चलाएँ:

root@kitploit:~
dive <your-image-tag>

या आप सीधे Docker के साथ dive का उपयोग कर सकते हैं:

root@kitploit:~
alias dive="docker run -ti --rm  -v /var/run/docker.sock:/var/run/docker.sock docker.io/wagoodman/dive"
dive <your-image-tag>

# उदाहरण के लिए
dive nginx:latest

या यदि आप अपनी इमेज बनाना चाहते हैं और फिर सीधे उसका विश्लेषण करना चाहते हैं:

root@kitploit:~
dive build -t <some-tag> .

macOS पर बिल्ड करना (केवल Docker कंटेनर इंजन का समर्थन):

root@kitploit:~
docker run --rm -it \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v  "$(pwd)":"$(pwd)" \
      -w "$(pwd)" \
      -v "$HOME/.dive.yaml":"$HOME/.dive.yaml" \
      docker.io/wagoodman/dive:latest build -t <some-tag> .

इसके अतिरिक्त, आप इसे अपने CI पाइपलाइन में चला सकते हैं ताकि यह सुनिश्चित हो सके कि आप बर्बाद जगह को न्यूनतम रख रहे हैं (यह UI को छोड़ देता है):

root@kitploit:~
CI=true dive <your-image>

Image

यह बीटा गुणवत्ता है! यदि आप कोई नई सुविधा चाहते हैं या कोई बग पाते हैं तो कृपया एक मुद्दा प्रस्तुत करें :)

बुनियादी विशेषताएँ

लेयर के अनुसार Docker इमेज सामग्री दिखाएँ

जब आप बाईं ओर किसी लेयर का चयन करते हैं, तो आपको दाईं ओर उस लेयर की सामग्री को पिछली सभी लेयरों के साथ संयुक्त रूप में दिखाया जाता है। साथ ही, आप arrow keys का उपयोग करके फ़ाइल ट्री का पूरी तरह से अन्वेषण कर सकते हैं।

बताएँ कि प्रत्येक लेयर में क्या बदला है

जो फ़ाइलें बदली गई हैं, संशोधित की गई हैं, जोड़ी गई हैं या हटाई गई हैं, उन्हें फ़ाइल ट्री में दर्शाया गया है। इसे किसी विशिष्ट लेयर के लिए परिवर्तन दिखाने, या इस लेयर तक के समग्र परिवर्तन दिखाने के लिए समायोजित किया जा सकता है।

"इमेज दक्षता" का अनुमान लगाएं

नीचे बाईं ओर का पैनल बुनियादी लेयर जानकारी और एक प्रायोगिक मीट्रिक दिखाता है जो अनुमान लगाएगा कि आपकी इमेज में कितनी बर्बाद जगह है। यह लेयरों में फ़ाइलों की नकल, लेयरों में फ़ाइलों को स्थानांतरित करने, या फ़ाइलों को पूरी तरह से न हटाने के कारण हो सकता है। प्रतिशत "स्कोर" और कुल बर्बाद फ़ाइल स्थान दोनों प्रदान किए जाते हैं।

त्वरित बिल्ड/विश्लेषण चक्र

आप एक Docker इमेज बना सकते हैं और एक कमांड के साथ तुरंत विश्लेषण कर सकते हैं: dive build -t some-tag .

आपको केवल अपने docker build कमांड को उसी dive build कमांड से बदलना होगा।

CI एकीकरण

एक इमेज का विश्लेषण करें और इमेज दक्षता और बर्बाद जगह के आधार पर पास/फेल परिणाम प्राप्त करें। बस किसी भी मान्य dive कमांड को लागू करते समय वातावरण में CI=true सेट करें।

एकाधिक इमेज स्रोत और कंटेनर इंजन समर्थित

--source विकल्प के साथ, आप चुन सकते हैं कि कंटेनर इमेज कहाँ से लाई जाए:

root@kitploit:~
dive <your-image> --source <source>

या

root@kitploit:~
dive <source>://<your-image>

मान्य source विकल्प इस प्रकार हैं:

  • docker: Docker इंजन (डिफ़ॉल्ट विकल्प)
  • docker-archive: डिस्क से एक Docker Tar आर्काइव
  • podman: Podman इंजन (केवल लिनक्स)

स्थापना

Ubuntu/Debian

डेब्स का उपयोग करना:

root@kitploit:~
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -fOL "https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb"
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb

स्नैप का उपयोग करना:

root@kitploit:~
sudo snap install docker
sudo snap install dive
sudo snap connect dive:docker-executables docker:docker-executables
sudo snap connect dive:docker-daemon docker:docker-daemon

[!CAUTION] यदि आपने apt-get के माध्यम से Docker स्थापित किया है तो स्नैप विधि अनुशंसित नहीं है, क्योंकि यह आपके मौजूदा Docker डेमॉन को तोड़ सकता है।

यह भी देखें: https://github.com/wagoodman/dive/issues/546

RHEL/Centos

root@kitploit:~
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -fOL "https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.rpm"
rpm -i dive_${DIVE_VERSION}_linux_amd64.rpm

Arch Linux

extra repository में उपलब्ध है और pacman के माध्यम से स्थापित किया जा सकता है:

root@kitploit:~
pacman -S dive

Mac

यदि आप Homebrew का उपयोग करते हैं:

root@kitploit:~
brew install dive

यदि आप MacPorts का उपयोग करते हैं:

root@kitploit:~
sudo port install dive

या releases page से नवीनतम Darwin बिल्ड डाउनलोड करें।

Windows

यदि आप Chocolatey का उपयोग करते हैं

root@kitploit:~
choco install dive

यदि आप scoop का उपयोग करते हैं

root@kitploit:~
scoop install main/dive

यदि आप winget का उपयोग करते हैं:

root@kitploit:~
winget install --id wagoodman.dive

या releases page से नवीनतम Windows बिल्ड डाउनलोड करें।

Go उपकरण Go संस्करण 1.10 या उच्चतर की आवश्यकता है।

root@kitploit:~
go install github.com/wagoodman/dive@latest

नोट: इस तरह से स्थापित करने पर dive -v चलाने पर आपको उचित संस्करण नहीं दिखेगा।

Nix/NixOS

NixOS पर:

root@kitploit:~
nix-env -iA nixos.dive

गैर-NixOS (Linux, Mac) पर:

root@kitploit:~
nix-env -iA nixpkgs.dive

X-CMD

x-cmd एक Posix Shell के लिए टूलबॉक्स है, जो शेल और awk का उपयोग करके एक हल्का पैकेज मैनेजर प्रदान करता है।

root@kitploit:~
x env use dive

Docker

root@kitploit:~
docker pull docker.io/wagoodman/dive
# या वैकल्पिक रूप से
docker pull ghcr.io/wagoodman/dive

चलाते समय आपको Docker सॉकेट फ़ाइल शामिल करनी होगी:

root@kitploit:~
docker run --rm -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    docker.io/wagoodman/dive:latest <dive arguments...>

Windows के लिए Docker (PowerShell संगत लाइन ब्रेक दिखा रहा है; Command Prompt संगतता के लिए एकल लाइन में संक्षिप्त करें)

root@kitploit:~
docker run --rm -it `
    -v /var/run/docker.sock:/var/run/docker.sock `
    docker.io/wagoodman/dive:latest <dive arguments...>

नोट: आपके स्थानीय रूप से चल रहे डॉकर संस्करण के आधार पर, आपको Docker API संस्करण को एक पर्यावरण चर के रूप में निर्दिष्ट करने की आवश्यकता हो सकती है:

root@kitploit:~
   DOCKER_API_VERSION=1.37 dive ...

या यदि आप एक Docker इमेज के साथ चला रहे हैं:

root@kitploit:~
docker run --rm -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e DOCKER_API_VERSION=1.37 \
    docker.io/wagoodman/dive:latest <dive arguments...>

यदि आप एक वैकल्पिक रनटाइम (Colima आदि) का उपयोग कर रहे हैं तो स्थानीय इमेज खींचने के लिए आपको डॉकर होस्ट को पर्यावरण चर के रूप में निर्दिष्ट करने की आवश्यकता हो सकती है:

root@kitploit:~
   export DOCKER_HOST=$(docker context inspect -f '{{ .Endpoints.docker.Host }}')

CI एकीकरण

जब dive को पर्यावरण चर CI=true के साथ चलाया जाता है, तो dive UI को बायपास कर दिया जाएगा और इसके बजाय आपकी डॉकर इमेज का विश्लेषण किया जाएगा, जो रिटर्न कोड के माध्यम से पास/फेल संकेत देगा। वर्तमान में तीन मीट्रिक एक .dive-ci फ़ाइल के माध्यम से समर्थित हैं जिसे आप अपनी रिपॉजिटरी की जड़ में रख सकते हैं:

root@kitploit:~
rules:
  # यदि दक्षता X% से नीचे मापी जाती है, तो असफल के रूप में चिह्नित करें।
  # 0-1 के बीच अनुपात के रूप में व्यक्त किया गया।
  lowestEfficiency: 0.95

  # यदि बर्बाद जगह की मात्रा कम से कम X या X से बड़ी है, तो असफल के रूप में चिह्नित करें।
  # B, KB, MB, और GB में व्यक्त किया गया।
  highestWastedBytes: 20MB

  # यदि बर्बाद जगह इमेज का X% या अधिक भाग बनाती है, तो असफल के रूप में चिह्नित करें।
  # नोट: बेस इमेज लेयर कुल इमेज आकार में शामिल नहीं है।
  # 0-1 के बीच अनुपात के रूप में व्यक्त किया गया; यदि सीमा पूरी होती है या पार हो जाती है तो असफल।
  highestUserWastedPercent: 0.20

आप --ci-config विकल्प के साथ CI कॉन्फ़िगरेशन पथ को ओवरराइड कर सकते हैं।

कुंजी बाइंडिंग

UI कॉन्फ़िगरेशन

कोई कॉन्फ़िगरेशन आवश्यक नहीं है, हालाँकि, आप एक कॉन्फ़िगरेशन फ़ाइल बना सकते हैं और मानों को ओवरराइड कर सकते हैं:

root@kitploit:~
# समर्थित विकल्प "docker" और "podman" हैं
container-engine: docker
# यदि इमेज आर्काइव को पार्स करने में त्रुटियाँ हों तो भी विश्लेषण जारी रखें
ignore-errors: false
log:
  enabled: true
  path: ./dive.log
  level: info

# नोट: आप मानों को अल्पविराम से अलग करके एकाधिक बाइंडिंग निर्दिष्ट कर सकते हैं।
# नोट: UI संकेत पहली बाइंडिंग से प्राप्त होता है
keybinding:
  # वैश्विक बाइंडिंग
  quit: ctrl+c
  toggle-view: tab
  filter-files: ctrl+f, ctrl+slash
  close-filter-files: esc
  up: up,k
  down: down,j
  left: left,h
  right: right,l

  # लेयर दृश्य विशिष्ट बाइंडिंग
  compare-all: ctrl+a
  compare-layer: ctrl+l

  # फ़ाइल दृश्य विशिष्ट बाइंडिंग
  toggle-collapse-dir: space
  toggle-collapse-all-dir: ctrl+space
  toggle-added-files: ctrl+a
  toggle-removed-files: ctrl+r
  toggle-modified-files: ctrl+m
  toggle-unmodified-files: ctrl+u
  toggle-filetree-attributes: ctrl+b
  page-up: pgup,u
  page-down: pgdn,d

diff:
  # आप फ़ाइलट्री (दायाँ पैनल) में दिखाई गई डिफ़ॉल्ट फ़ाइलों को बदल सकते हैं। सभी डिफ़ प्रकार डिफ़ॉल्ट रूप से दिखाए जाते हैं।
  hide:
    - added
    - removed
    - modified
    - unmodified

filetree:
  # डिफ़ॉल्ट निर्देशिका-संक्षिप्त स्थिति
  collapse-dir: false

  # फ़ाइलट्री को स्क्रीन पर लेना चाहिए स्क्रीन चौड़ाई का प्रतिशत (>0 और <1 होना चाहिए)
  pane-width: 0.5

  # फ़ाइलट्री के आगे फ़ाइल विशेषताएँ दिखाएँ
  show-attributes: true

layer:
  # इस लेयर और हर पिछली लेयर से सभी परिवर्तन दिखाने में सक्षम करें
  show-aggregated-changes: false

dive निम्नलिखित स्थानों में कॉन्फ़िग खोजेगा:

  • $XDG_CONFIG_HOME/dive/*.yaml
  • $XDG_CONFIG_DIRS/dive/*.yaml
  • ~/.config/dive/*.yaml
  • ~/.dive.yaml

यदि वांछित हो तो .yml का .yaml के स्थान पर उपयोग किया जा सकता है।

टूल डाउनलोड करें
कुंजी बाइंडिंगविवरण
Ctrl + C या Qबाहर निकलें
Tabलेयर और फ़ाइलट्री दृश्यों के बीच स्विच करें
Ctrl + Fफ़ाइलों को फ़िल्टर करें
ESCफ़िल्टर फ़ाइलें बंद करें
PageUp या Uएक पृष्ठ ऊपर स्क्रॉल करें
PageDown या Dएक पृष्ठ नीचे स्क्रॉल करें
Up या Kएक पृष्ठ के भीतर एक पंक्ति ऊपर जाएँ
Down या Jएक पृष्ठ के भीतर एक पंक्ति नीचे जाएँ
Ctrl + Aलेयर दृश्य: समग्र इमेज संशोधन देखें
Ctrl + Lलेयर दृश्य: वर्तमान लेयर संशोधन देखें
Spaceफ़ाइलट्री दृश्य: एक निर्देशिका को संक्षिप्त/विस्तृत करें
Ctrl + Spaceफ़ाइलट्री दृश्य: सभी निर्देशिकाओं को संक्षिप्त/विस्तृत करें
Ctrl + Aफ़ाइलट्री दृश्य: जोड़ी गई फ़ाइलें दिखाएँ/छुपाएँ
Ctrl + Rफ़ाइलट्री दृश्य: हटाई गई फ़ाइलें दिखाएँ/छुपाएँ
Ctrl + Mफ़ाइलट्री दृश्य: संशोधित फ़ाइलें दिखाएँ/छुपाएँ
Ctrl + Uफ़ाइलट्री दृश्य: अपरिवर्तित फ़ाइलें दिखाएँ/छुपाएँ
Ctrl + Bफ़ाइलट्री दृश्य: फ़ाइल विशेषताएँ दिखाएँ/छुपाएँ
PageUp या Uफ़ाइलट्री दृश्य: एक पृष्ठ ऊपर स्क्रॉल करें
PageDown या Dफ़ाइलट्री दृश्य: एक पृष्ठ नीचे स्क्रॉल करें