Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dive — أداة لاستكشاف كل طبقة في صورة دوكر | Kitploit
أدوات/GitHubGitHub/wagoodman/dive
أدوات عامةأمن الحاويات
GitHubwagoodman/dive

dive

أداة لاستكشاف كل طبقة في صورة دوكر

عرض المستودع
54.4k2.0kمنذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

dive

GitHub release Validations Go Report Card License: MIT Donate

أداة لاستكشاف صورة Docker ومحتويات الطبقات واكتشاف طرق لتقليل حجم صورة Docker/OCI الخاصة بك.

Image

لتحليل صورة Docker، قم بتشغيل dive باستخدام علامة/معرف/خلاصة الصورة:

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

أو يمكنك استخدام dive مباشرة مع Docker:

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 الخاص بك لضمان الحفاظ على المساحة المهدرة عند أدنى حد (هذا يتجاوز واجهة المستخدم):

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

Image

هذه نسخة تجريبية! لا تتردد في تقديم مشكلة إذا كنت تريد ميزة جديدة أو وجدت خطأ :)

الميزات الأساسية

عرض محتويات صورة Docker مقسمة حسب الطبقة

عند تحديد طبقة على اليسار، تظهر لك محتويات تلك الطبقة بالإضافة إلى جميع الطبقات السابقة على اليمين. كما يمكنك استكشاف شجرة الملفات بالكامل باستخدام مفاتيح الأسهم.

الإشارة إلى ما تغير في كل طبقة

يتم الإشارة إلى الملفات التي تغيرت أو عدلت أو أضيفت أو حذفت في شجرة الملفات. يمكن ضبط ذلك لإظهار التغييرات لطبقة معينة، أو التغييرات المجمعة حتى هذه الطبقة.

تقدير "كفاءة الصورة"

تعرض اللوحة السفلية اليسرى معلومات أساسية عن الطبقة ومقياسًا تجريبيًا يخمن مقدار المساحة المهدرة التي تحتويها صورتك. قد يكون ذلك من تكرار الملفات عبر الطبقات، أو نقل الملفات عبر الطبقات، أو عدم إزالة الملفات بالكامل. يتم توفير كل من النسبة المئوية "للنتيجة" وإجمالي مساحة الملفات المهدرة.

دورات بناء/تحليل سريعة

يمكنك بناء صورة Docker وإجراء تحليل فوري بأمر واحد: dive build -t some-tag .

كل ما عليك فعله هو استبدال أمر docker build الخاص بك بنفس أمر dive build.

تكامل CI

قم بتحليل صورة واحصل على نتيجة نجاح/فشل بناءً على كفاءة الصورة والمساحة المهدرة. ما عليك سوى تعيين CI=true في البيئة عند تشغيل أي أمر dive صالح.

دعم مصادر صور متعددة ومحركات حاويات متعددة

مع الخيار --source، يمكنك تحديد مكان جلب صورة الحاوية:

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

أو

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

مع خيارات source الصالحة كالتالي:

  • docker: محرك Docker (الخيار الافتراضي)
  • docker-archive: أرشيف Docker Tar من القرص
  • podman: محرك Podman (لينكس فقط)

التثبيت

أوبونتو/ديبيان

باستخدام حزم deb:

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

باستخدام snap:

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] طريقة Snap غير موصى بها إذا قمت بتثبيت Docker عبر apt-get، لأنها قد تعطل برنامج 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

آرتش لينكس

متوفر في مستودع extra ويمكن تثبيته عبر pacman:

root@kitploit:~
pacman -S dive

ماك

إذا كنت تستخدم Homebrew:

root@kitploit:~
brew install dive

إذا كنت تستخدم MacPorts:

root@kitploit:~
sudo port install dive

أو قم بتنزيل أحدث إصدار لـ Darwin من صفحة الإصدارات.

ويندوز

إذا كنت تستخدم Chocolatey

root@kitploit:~
choco install dive

إذا كنت تستخدم scoop

root@kitploit:~
scoop install main/dive

إذا كنت تستخدم winget:

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

أو قم بتنزيل أحدث إصدار لويندوز من صفحة الإصدارات.

أدوات Go يتطلب إصدار Go 1.10 أو أعلى.

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

ملاحظة: عند التثبيت بهذه الطريقة، لن ترى إصدارًا مناسبًا عند تشغيل dive -v.

نيكس/NixOS

على NixOS:

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

على غير NixOS (لينكس، ماك)

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

X-CMD

x-cmd هي صندوق أدوات لـ Posix Shell، وتقدم مدير حزم خفيف الوزن مبني باستخدام shell و awk.

root@kitploit:~
x env use dive

دوكر

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...>

دوكر لويندوز (إظهار فواصل أسطر متوافقة مع 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 الذي تقوم بتشغيله محليًا، قد تحتاج إلى تحديد إصدار واجهة برمجة تطبيقات docker كمتغير بيئة:

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 إلخ) فقد تحتاج إلى تحديد مضيف docker كمتغير بيئة لسحب الصور المحلية:

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

تكامل CI

عند تشغيل dive مع متغير البيئة CI=true، سيتم تجاوز واجهة المستخدم الخاصة بـ dive وبدلاً من ذلك سيتم تحليل صورة docker الخاصة بك، مع إعطاء إشارة نجاح/فشل عبر رمز الإرجاع. حاليًا هناك ثلاثة مقاييس مدعومة عبر ملف .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 باستخدام الخيار --ci-config.

اختصارات المفاتيح

تكوين واجهة المستخدم

لا حاجة لتكوين، ومع ذلك، يمكنك إنشاء ملف تكوين وتجاوز القيم:

root@kitploit:~
# الخيارات المدعومة هي "docker" و "podman"
container-engine: docker
# استمر في التحليل حتى في حالة وجود أخطاء في تحليل أرشيف الصورة
ignore-errors: false
log:
  enabled: true
  path: ./dive.log
  level: info

# ملاحظة: يمكنك تحديد عدة روابط بفصل القيم بفاصلة.
# ملاحظة: يتم اشتقاق تلميح واجهة المستخدم من الرابط الأول
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عرض شجرة الملفات: التمرير لأسفل صفحة