Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

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

dive

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

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

الأكثر شعبية

عرض الكل →

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

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

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

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

dive

GitHub release Validations Go Report Card License: MIT Donate

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

Image

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

dive <your-image-tag>

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

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

أو إذا أردت بناء صورتك ثم الانتقال مباشرة لتحليلها:

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

CI=true dive <your-image>

Image

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

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

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

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

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

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

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

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

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

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

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

تكامل CI

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

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

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

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

أو

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

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

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

التثبيت

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

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

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:

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

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:

pacman -S dive

ماك

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

brew install dive

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

sudo port install dive

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

ويندوز

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

choco install dive

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

scoop install main/dive

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

winget install --id wagoodman.dive

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

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

go install github.com/wagoodman/dive@latest

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

نيكس/NixOS

على NixOS:

nix-env -iA nixos.dive

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

nix-env -iA nixpkgs.dive

X-CMD

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

x env use dive

دوكر

docker pull docker.io/wagoodman/dive
# أو بدلاً من ذلك
docker pull ghcr.io/wagoodman/dive

عند التشغيل، ستحتاج إلى تضمين ملف مقبس Docker:

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

دوكر لويندوز (إظهار فواصل أسطر متوافقة مع PowerShell؛ قم بدمجها في سطر واحد للتأقلم مع Command Prompt)

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

ملاحظة: اعتمادًا على إصدار docker الذي تقوم بتشغيله محليًا، قد تحتاج إلى تحديد إصدار واجهة برمجة تطبيقات docker كمتغير بيئة:

   DOCKER_API_VERSION=1.37 dive ...

أو إذا كنت تعمل باستخدام صورة docker:

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 كمتغير بيئة لسحب الصور المحلية:

   export DOCKER_HOST=$(docker context inspect -f '{{ .Endpoints.docker.Host }}')

تكامل CI

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

rules:
  # إذا كانت الكفاءة المقاسة أقل من X%، قم بوضع علامة فشل.
  # يتم التعبير عنها كنسبة بين 0-1.
  lowestEfficiency: 0.95

  # إذا كانت كمية المساحة المهدرة على الأقل X أو أكبر من X، قم بوضع علامة فشل.
  # يتم التعبير عنها بـ B، KB، MB، و GB.
  highestWastedBytes: 20MB

  # إذا كانت المساحة المهدرة تشكل X% أو أكثر من الصورة، قم بوضع علامة فشل.
  # ملاحظة: طبقة الصورة الأساسية غير مضمنة في الحجم الإجمالي للصورة.
  # يتم التعبير عنها كنسبة بين 0-1؛ تفشل إذا تم تجاوز الحد أو الوصول إليه.
  highestUserWastedPercent: 0.20

يمكنك تجاوز مسار تكوين CI باستخدام الخيار --ci-config.

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

تنزيل الأداة