본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

manifest-tool

0

manifest-tool은 컨테이너 이미지의 매니페스트(manifest list 또는 index)를 조회하거나 푸시하는 명령줄 유틸리티입니다.

다중 플랫폼레지스트리매니페스트이미지컨테이너

소개

manifest-tool은 컨테이너 이미지의 매니페스트(manifest list 또는 index)를 조회하거나 푸시하는 명령줄 유틸리티입니다. estesp가 개발한 이 도구는 OCIv1 또는 Docker v2.2 호환 레지스트리에서 다중 플랫폼 이미지 참조를 관리하는 데 사용됩니다. 매니페스트 목록을 통해 서로 다른 아키텍처와 OS용 이미지들을 단일 참조로 결합하여 컨테이너 런타임이 적절한 이미지를 선택할 수 있도록 지원합니다.

상세정보

매니페스트 조회 (inspect)

manifest-tool inspect 명령을 통해 어떤 레지스트리의 이미지 참조(repo/image:tag)에 대한 매니페스트 정보를 확인할 수 있습니다. 이 명령은 매니페스트 유형(단일 매니페스트 또는 매니페스트 목록), 다이제스트, 레이어 정보, 그리고 각 플랫폼별 OS 및 아키텍처 상세 정보를 출력합니다. 태그는 반드시 지정해야 하며, latest라도 명시해야 합니다.

매니페스트 생성 및 푸시 (push)

manifest-tool push 명령은 두 가지 방식으로 매니페스트 목록을 생성할 수 있습니다. 첫째, YAML 파일을 통해 이미지와 해당 플랫폼(OS/아키텍처)을 정의하여 푸시할 수 있습니다. 둘째, –platforms, –template, –tags, –target과 같은 명령줄 인수를 사용하여 템플릿 기반으로 이미지 참조를 동적으로 생성할 수 있습니다. 푸시 전에는 구성 요소 이미지가 이미 레지스트리에 존재해야 하며, 인증은 Docker 클라이언트와 동일한 방식으로 처리됩니다.

다운로드·설치 방법

manifest-tool은 GitHub releases 페이지에서 다양한 아키텍처용 사전 빌드된 바이너리를 제공합니다. 사용자는 자신의 OS와 아키텍처에 맞는 바이너리를 다운로드하여 PATH에 등록된 디렉터리에 놓으면 바로 사용할 수 있습니다. 또한 Docker를 통해 mplatform/manifest-tool 이미지를 실행하여 로컬 설치 없이도 사용할 수 있습니다. 소스에서 직접 빌드하려면 Go SDK와 make가 필요하며, make binary, make static, make cross와 같은 타겟을 통해 다양한 바이너리를 생성할 수 있습니다.

기본 사용법/명령어

매니페스트를 조회하려면 다음 명령을 사용합니다: manifest-tool inspect golang:1.17. 이는 golang:1.17 이미지의 매니페스트 목록 정보를 출력하며, 포함된 플랫폼과 레이어 상세 정보를 보여줍니다. 매니페스트 목록을 생성하고 푸시하려면 YAML 파일을 사용할 수 있습니다. 예를 들어, someimage.yaml 파일에 이미지와 플랫폼을 정의한 후 manifest-tool push from-spec someimage.yaml 명령을 실행합니다. 또는 명령줄 인수를 사용할 경우: manifest-tool push from-args --platforms linux/amd64,linux/s390x,linux/arm64 --template foo/bar-ARCH:v1 --tags v1.0.0,v1.0 --target foo/bar:v1 와 같이 실행합니다. 여기서 –template의 ARCH placeholder는 –platforms의 각 항목에 따라 치환됩니다.

이런 경우에 유용합니다

이 도구는 다중 아키텍처 컨테이너 이미지를 배포해야 하는 개발자나 DevOps 엔지니어에게 유용합니다. 예를 들어, 동일한 이미지 태그 아래에 linux/amd64와 linux/arm64용 이미지를 결합하여, 쿠버네티스나 Docker와 같은 오케스트레이터가 노드의 아키텍처에 맞는 이미지를 자동으로 선택하도록 할 수 있습니다. 이는 별도의 이미지 태그나 플랫폼별 저장소 관리를 줄여 배포 과정을 단순화합니다.

지원 환경·시스템 요구사항

manifest-tool은 Windows, Linux, macOS 등 주요 운영 체제에서 실행할 수 있는 크로스 플랫폼 Go 바이너리로 제공됩니다. 바이너리 실행에는 별도의 런타임 의존성이 없으며, 소스에서 빌드하려면 Go SDK가 필요합니다. 레지스트리와 통신하려면 네트워크 접근이 필요하며, 푸시 작업 시에는 인증이 필요할 수 있습니다.

최신 버전·업데이트

현재 버전은 1.0.3이며, 최신 릴리스 정보와 바이너리는 GitHub releases 페이지에서 확인할 수 있습니다. 업데이트는 새로운 Go 버전과의 호환성 유지 및 플랫폼 지원을 위해 주기적으로 이루어집니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.