Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

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

dive

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

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

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

सभी देखें →

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

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

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

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

dive

GitHub release Validations Go Report Card License: MIT Donate

Docker इमेज, लेयर सामग्री का पता लगाने और आपकी Docker/OCI इमेज का आकार कम करने के तरीकों को खोजने के लिए एक टूल।

Image

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

dive <your-image-tag>

या आप सीधे Docker के साथ शुरू कर सकते हैं:

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

# for example
dive nginx:latest

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

dive build -t <some-tag> .

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

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 को छोड़ देता है):

CI=true dive <your-image>

Image

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

मूल सुविधाएँ

Docker इमेज की सामग्री को परत के अनुसार विभाजित करके दिखाएँ

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

प्रत्येक परत में क्या बदला है, यह इंगित करें

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

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

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

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

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

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

CI एकीकरण

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

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

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

dive <your-image> --source <source>

या छवि को <source>:// स्कीम के साथ उपसर्ग करें:

dive <source>://<your-image>

फ़ाइल-आधारित स्रोत भी <source>:<path> रूप लेते हैं जो अन्य anchore टूल्स उपयोग करते हैं (जैसे dive oci-dir:./layout)। अन्य प्रत्येक स्रोत के लिए एकल कोलन को इमेज नाम और टैग के रूप में पढ़ा जाता है, इसलिए dive docker:dind docker:dind इमेज का विश्लेषण करता है।

स्रोतइमेज यहाँ से पढ़ता है
dockerDocker इंजन (डिफ़ॉल्ट)। स्थानीय रूप से अनुपलब्ध इमेजें docker API के माध्यम से खींची जाती हैं, आपके docker कॉन्फ़िग से क्रेडेंशियल्स के साथ। DOCKER_HOST, DOCKER_CONTEXT और वर्तमान docker कॉन्टेक्स्ट का सम्मान किया जाता है
podmanPodman। linux पर स्थानीय स्टोर सीधे पढ़ा जाता है (सॉकेट की आवश्यकता नहीं, containers-storage देखें, और myapp जैसा छोटा नाम podman के localhost/myapp को भी ढूँढता है), podman सॉकेट पर वापस आते हुए। macOS पर चल रही podman मशीन का API सॉकेट उपयोग किया जाता है (podman machine inspect के माध्यम से पाया जाता है); CONTAINER_HOST=unix://... इसे ओवरराइड करता है, ssh कनेक्शन अस्वीकार किए जाते हैं
docker-archiveडिस्क पर एक docker save tarball, या एक OCI आर्काइव (docker-tar एक उपनाम है)
oci-archiveडिस्क पर एक OCI इमेज लेआउट tarball
oci-dirडिस्क पर एक OCI इमेज लेआउट डायरेक्टरी
registryएक रजिस्ट्री, बिना कंटेनर इंजन के (आपके docker कॉन्फ़िग से क्रेडेंशियल्स)। निजी IP पतों पर रजिस्ट्रियाँ अस्वीकार की जाती हैं, क्योंकि उन तक सादे http पर पहुँचा जाएगा
containerdcontainerd डेमॉन (CONTAINERD_NAMESPACE नेमस्पेस चुनता है)
containers-storageस्थानीय podman/buildah स्टोर (केवल linux, नीचे देखें)
autoइसका पता लगाएँ: पहले डिस्क पर फ़ाइलें, फिर docker, podman, containerd और containers-storage, फिर एक रजिस्ट्री पुल। जो स्रोत चुना गया वह रिपोर्ट किया जाता है, क्योंकि जो इमेज किसी स्थानीय इंजन के पास नहीं है वह चुपचाप एक रजिस्ट्री से आती है (छोटे नाम के लिए Docker Hub)। केवल --source के लिए मान्य, स्कीम के रूप में नहीं

मल्टी-प्लेटफ़ॉर्म इमेज के लिए, --platform विश्लेषण करने के लिए वेरिएंट चुनता है (जैसे --platform linux/arm64)। एक docker save tarball एकल प्लेटफ़ॉर्म रखता है, जब यह मेल नहीं खाता तो dive रिपोर्ट करता है।

containers-storage समर्थन केवल containers_image_openpgp बिल्ड टैग के साथ संकलित किया जाता है, जो linux रिलीज़ बिल्ड्स (और docker इमेज) में है। इसके बिना स्रोत रिपोर्ट करता है कि यह उपलब्ध नहीं है। इसे स्वयं बिल्ड करने के लिए: go build -tags containers_image_openpgp,exclude_graphdriver_btrfs ./cmd/dive।

JSON निर्यात

--json <path> UI को छोड़ देता है और विश्लेषण को एक फ़ाइल में लिखता है। प्रत्येक लेयर का id लेयर का diff ID है (digestId के समान मान)।

इंस्टॉलेशन

Ubuntu/Debian

debs का उपयोग करते हुए:

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

Using snap:

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] यदि आपने Docker को apt-get के माध्यम से इंस्टॉल किया है, तो Snap विधि की अनुशंसा नहीं की जाती है, क्योंकि यह आपके मौजूदा Docker daemon को तोड़ सकती है।

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

RHEL/Centos

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 के माध्यम से इंस्टॉल किया जा सकता है:

pacman -S dive

Mac

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

brew install dive

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

sudo port install dive

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

Windows

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

टूल डाउनलोड करें