개요
Docker Buildx Imagetools는 컨테이너 레지스트리의 매니페스트 리스트(manifest lists)를 관리하기 위한 도구입니다. 이 도구는 특히 멀티 플랫폼 이미지 구성과 증명(attestations)을 검사하는 데 유용합니다.
주요 기능
- 매니페스트 리스트 관리: 레지스트리의 이미지 매니페스트를 검사하고 조작할 수 있습니다
- 멀티 아키텍처 지원: 다양한 아키텍처(예: ARM64, AMD64)용 이미지를 하나의 이미지로 결합 가능합니다
- 이미지 검사: 레지스트리에 저장된 이미지의 상세 정보를 확인할 수 있습니다
주요 명령어
Docker Buildx Imagetools에는 다음과 같은 하위 명령어들이 있습니다
- inspect: 이미지 매니페스트를 검사하는 명령어로, 매니페스트의 구조와 내용을 보여줍니다
- create: 여러 이미지를 결합하여 멀티 아키텍처 이미지를 생성하는 명령어
기능
- 서로 다른 소스와 아키텍처에서 빌드된 이미지들을 결합합니다
- 기존의 docker manifest 명령어와 유사하지만, 이미지를 레지스트리에 한 번에 푸시하는 기능을 제공합니다
- 이미지 인덱스와 디스크립터에 주석을 추가할 수 있습니다
사용법
기본 문법
docker buildx imagetools create [옵션] 소스이미지... -t 대상이미지
예제
docker buildx imagetools create -t my-repo/my-image:latest \
my-repo/my-image-arm64:latest \
my-repo/my-image-amd64:latest
이 명령어는 ARM64와 AMD64 아키텍처용 이미지를 하나의 멀티 아키텍처 이미지로 결합합니다
주요 옵션
- -t, --tag: 생성할 매니페스트 리스트의 태그를 지정합니다
- --append: 새 소스를 대상의 기존 매니페스트 리스트에 추가합니다
- --dry-run: 실제로 이미지를 생성하지 않고 수행할 작업만 표시합니다
활용 사례
- 크로스 플랫폼 호환성: 다양한 아키텍처(ARM, x86 등)에서 실행 가능한 단일 이미지 생성
- 배포 단순화: 여러 아키텍처 이미지를 한 번에 배포
- 이미지 검사: 멀티 플랫폼 구성 확인을 위한 매니페스트 검사
참고사항
- 이 기능은 Docker 클라이언트에서 실험적인 기능으로 제공됩니다
- 프로덕션 환경에서는 주의하여 사용해야 합니다
- 일부 상황에서는 새로 생성된 이미지를 푸시할 때 패닉이 발생할 수 있습니다
결론
Docker Buildx Imagetools는 멀티 아키텍처 이미지 관리를 위한 강력한 도구이며, 특히 create 명령어를 통해 다양한 플랫폼에서 실행 가능한 단일 이미지를 쉽게 생성할 수 있습니다. 이는 다양한 환경에서의 도커 이미지 호환성을 원활하게 보장하는 데 매우 유용합니다.
참고: