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)
기본적으로 도구는 이미지 레퍼런스(참조)를 기대해요. 예를 들면:
rediscurlimages/curl:7.87.0mcr.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