Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dive — 도커 이미지의 각 레이어를 탐색하는 도구 | Kitploit
도구/GitHubGitHub/wagoodman/dive
General Purpose UtilitiesContainer Security
GitHubwagoodman/dive

dive

도커 이미지의 각 레이어를 탐색하는 도구

저장소 보기
54.4k2.0k721년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

dive

GitHub release Validations Go Report Card License: MIT Donate

Docker 이미지, 레이어 콘텐츠를 탐색하고 Docker/OCI 이미지 크기를 줄이는 방법을 발견하는 도구입니다.

Image

Docker 이미지를 분석하려면 이미지 태그/ID/다이제스트와 함께 dive를 실행하기만 하면 됩니다:

dive <your-image-tag>

또는 Docker를 통해 직접 dive를 실행할 수 있습니다:

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 파이프라인에서 이 도구를 실행하여 낭비되는 공간을 최소화할 수 있습니다 (UI는 생략됨):

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 엔진 (Linux 전용)

설치

Ubuntu/Debian

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 방식은 apt-get으로 Docker를 설치한 경우 권장되지 않습니다. 기존 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

Arch Linux

extra 저장소에서 사용 가능하며 pacman을 통해 설치할 수 있습니다:

pacman -S dive

Mac

Homebrew를 사용하는 경우:

brew install dive

MacPorts를 사용하는 경우:

sudo port install dive

또는 릴리스 페이지에서 최신 Darwin 빌드를 다운로드하세요.

Windows

Chocolatey를 사용하는 경우:

choco install dive

scoop을 사용하는 경우:

scoop install main/dive

winget을 사용하는 경우:

winget install --id wagoodman.dive

또는 릴리스 페이지에서 최신 Windows 빌드를 다운로드하세요.

Go 도구 Go 버전 1.10 이상이 필요합니다.

go install github.com/wagoodman/dive@latest

참고: 이 방식으로 설치하면 dive -v 실행 시 올바른 버전이 표시되지 않습니다.

Nix/NixOS

NixOS에서:

nix-env -iA nixos.dive

NixOS가 아닌 시스템(Linux, Mac)에서:

nix-env -iA nixpkgs.dive

X-CMD

x-cmd는 Posix Shell용 도구 상자로, 셸과 awk를 사용하여 구축된 경량 패키지 관리자를 제공합니다.

x env use dive

Docker

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

Windows용 Docker (PowerShell 호환 줄 바꿈 표시; 명령 프롬프트 호환성을 위해 한 줄로 축소)

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

참고: 로컬에서 실행 중인 Docker 버전에 따라 Docker API 버전을 환경 변수로 지정해야 할 수 있습니다:

   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 통합

환경 변수 CI=true로 dive를 실행하면 dive UI가 생략되고 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-config 옵션으로 CI 구성 파일 경로를 재정의할 수 있습니다.

키 바인딩

키 바인딩설명
Ctrl + C 또는 Q종료
Tab레이어 보기와 파일 트리 보기 간 전환
Ctrl + F파일 필터링
ESC파일 필터 닫기
PageUp 또는 U한 페이지 위로 스크롤
PageDown 또는 D한 페이지 아래로 스크롤
위 또는 K페이지 내에서 한 줄 위로 이동
아래 또는 J페이지 내에서 한 줄 아래로 이동
Ctrl + A레이어 보기: 누적된 이미지 수정 사항 보기
Ctrl + L레이어 보기: 현재 레이어 수정 사항 보기
Space파일 트리 보기: 디렉터리 접기/펼치기
Ctrl + Space파일 트리 보기: 모든 디렉터리 접기/펼치기
Ctrl + A파일 트리 보기: 추가된 파일 표시/숨기기
Ctrl + R파일 트리 보기: 제거된 파일 표시/숨기기
Ctrl + M파일 트리 보기: 수정된 파일 표시/숨기기
Ctrl + U파일 트리 보기: 수정되지 않은 파일 표시/숨기기
Ctrl + B파일 트리 보기: 파일 속성 표시/숨기기
PageUp 또는 U파일 트리 보기: 한 페이지 위로 스크롤
PageDown 또는 D파일 트리 보기: 한 페이지 아래로 스크롤

UI 구성

도구 다운로드