docker scout sbom

docker scout sbom

docker scout sbom은 이미지의 SBOM(소프트웨어 자재 명세서)을 생성하거나 표시하는 명령이에요. 이미지에 들어 있는 패키지 목록을 확인하고 싶을 때 써요.

출처: 문서

본문

docker scout sbom 명령은 소프트웨어 아티팩트를 분석해 Software Bill Of Materials(SBOM)를 생성해요. SBOM에는 이미지의 모든 패키지 목록이 들어 있어요. --format 플래그를 사용하면 특정 유형의 패키지만 표시하도록 출력을 필터링할 수 있어요. 이미지를 지정하지 않으면 가장 최근에 빌드된 이미지를 사용해요.

지원되는 아티팩트 유형은 다음과 같아요:

  • 이미지 (Images)
  • OCI 레이아웃 디렉터리 (OCI layout directories)
  • docker save로 만든 tarball 아카이브 (Tarball archives)
  • 로컬 디렉터리 또는 파일 (Local directory or file)

기본적으로 도구는 이미지 레퍼런스(참조)를 기대해요. 예를 들면:

  • redis
  • curlimages/curl:7.87.0
  • mcr.microsoft.com/dotnet/runtime:7.0

분석하려는 아티팩트가 OCI 디렉터리·tarball 아카이브·로컬 파일이나 디렉터리이거나, 이미지가 어디서 해석될지(레지스트리 조회 여부) 제어하고 싶다면 레퍼런스 앞에 다음 접두사 중 하나를 붙여야 해요:

  • image:// (기본값) 로컬 이미지를 사용하거나, 없다면 레지스트리 조회로 폴백해요
  • local:// 로컬 이미지 스토어의 이미지를 사용해요 (레지스트리 조회 안 함)
  • registry:// 레지스트리의 이미지를 사용해요 (로컬 이미지 사용 안 함)
  • oci-dir:// OCI 레이아웃 디렉터리를 사용해요
  • archive:// docker save로 만든 tarball 아카이브를 사용해요
  • fs:// 로컬 디렉터리 또는 파일을 사용해요

사용법 (Usage)

docker scout sbom [IMAGE|DIRECTORY|ARCHIVE]

옵션 (Options)

옵션 기본값 설명
--format json 출력 형식이에요: list(이미지의 패키지 목록), json(SBOM의 json 표현), spdx(SBOM의 spdx 표현), cyclonedx(SBOM의 cyclonedx 표현)
--only-package-type 패키지 유형의 쉼표 구분 목록이에요 (예: apk, deb, rpm, npm, pypi, golang 등). --format list에서만 사용할 수 있어요
-o, --output 보고서를 파일로 써요
--platform 분석할 이미지의 플랫폼이에요
--ref 제공된 tarball이 여러 참조를 포함하면 사용할 참조예요. archive에서만 사용할 수 있어요

예제 (Examples)

패키지 목록 표시하기

$ docker scout sbom --format list alpine

특정 유형의 패키지만 표시하기

 $ docker scout sbom --format list --only-package-type apk alpine

전체 SBOM을 JSON 형식으로 표시하기

$ docker scout sbom alpine

가장 최근에 빌드된 이미지의 전체 SBOM 표시하기

$ docker scout sbom

SBOM을 파일로 쓰기

$ docker scout sbom --output alpine.sbom alpine

더 알아보기 (Learn more)