Docker 이미지를 빌드하면 각각의 이미지를 구분하기 위한 고유 식별자가 생성됩니다.
이 값을 Image ID 또는 Image Digest라고 합니다.
예:
sha256:8a7c9d...
Docker 이미지 이름이나 Tag는 변경할 수 있지만, Image ID는 특정 이미지를 식별하는 고유한 값입니다.
Docker Buildx Build에서는 빌드 결과로 생성된 이미지 ID를 파일에 저장할 수 있는 기능을 제공합니다.
바로 --iidfile 옵션입니다.
예:
docker buildx build \
--iidfile image-id.txt \
-t app:v1 .
빌드가 완료되면 이미지 ID가 파일에 저장됩니다.
이번 글에서는 Docker Buildx Build –iidfile의 개념부터 기본 사용법, CI/CD 활용, 이미지 식별 관리 방법까지 자세히 알아보겠습니다.
Docker Buildx Build –iidfile이란 무엇인가?
--iidfile은 빌드 결과로 생성된 이미지 ID를 파일에 저장하는 옵션입니다.
기본 형식:
docker buildx build \
--iidfile 파일경로 .
빌드 과정:
Dockerfile
↓
Docker Buildx 실행
↓
이미지 생성
↓
Image ID 저장
생성된 ID를 자동화 과정에서 사용할 수 있습니다.
Docker Image ID란 무엇인가?
Image ID는 Docker 이미지의 고유 식별자입니다.
예:
sha256:abc123456789
특징:
- 이미지 고유 식별
- Tag와 별개
- 동일 이미지 확인 가능
- 자동화 작업 활용 가능
Docker Buildx Build –iidfile 기본 사용법
예:
docker buildx build \
--iidfile image-id.txt \
-t app:v1 .
빌드 완료 후:
cat image-id.txt
결과:
sha256:xxxxxxxx
이미지 ID를 확인할 수 있습니다.
Docker Buildx Build –iidfile과 –tag 차이
두 기능은 목적이 다릅니다.
–tag
이미지 이름 지정:
docker buildx build \
-t app:v1 .
결과:
app:v1
사람이 관리하기 쉬운 이름입니다.
–iidfile
이미지 ID 저장:
docker buildx build \
--iidfile id.txt .
결과:
sha256:xxxx
자동화와 검증에 사용합니다.
Docker Buildx Build –iidfile 실무 활용 예제
CI/CD 이미지 ID 저장
빌드:
docker buildx build \
--iidfile build-image.txt \
-t company/app:v1 .
확인:
cat build-image.txt
결과:
sha256:123456
이 값을 다음 배포 단계에서 사용할 수 있습니다.
배포 자동화 활용
CI 과정:
이미지 빌드
↓
Image ID 저장
↓
이미지 검증
↓
배포 진행
Tag보다 정확한 이미지 식별이 가능합니다.
Docker Buildx Build –iidfile과 Digest 차이
비슷해 보이지만 용도가 다릅니다.
Image ID
로컬 이미지 식별:
sha256:image-id
Digest
Registry 이미지 식별:
sha256:digest
정리:
Image ID = 빌드 결과 식별
Digest = Registry 이미지 식별
Docker Buildx Build –iidfile 실무 활용 예제
이미지 검증 자동화
빌드:
docker buildx build \
--iidfile result.txt \
-t app:test .
스크립트:
IMAGE_ID=$(cat result.txt)
echo $IMAGE_ID
자동으로 생성된 이미지 ID를 가져올 수 있습니다.
Linux 서버 문제 해결
CI 서버에서 여러 이미지가 생성되면서 어떤 이미지가 최신인지 확인하기 어려웠습니다.
기존:
docker buildx build \
-t app:latest .
문제:
latest Tag 변경 추적 어려움
해결:
docker buildx build \
--iidfile latest-image.txt \
-t app:latest .
확인:
cat latest-image.txt
결과:
sha256:abcd1234
정확한 빌드 결과를 확인할 수 있었습니다.
Docker Buildx Build –iidfile 사용 시 주의사항
첫 번째는 모든 Output 방식에서 Image ID가 생성되는 것은 아닙니다.
두 번째는 파일 저장 위치를 CI 환경에서 관리해야 합니다.
세 번째는 Image ID와 Registry Digest를 혼동하지 않아야 합니다.
네 번째는 자동화 과정에서는 파일 권한 관리가 필요합니다.
Best Practice
Docker Buildx Build –iidfile 활용 방법:
- CI/CD 빌드 결과 저장
- 이미지 추적 자동화
- 배포 전 이미지 검증
- Artifact와 함께 관리
- Digest와 구분하여 사용
- 자동화 스크립트와 연동
자주 묻는 질문
Docker Buildx Build –iidfile은 무엇인가요?
빌드된 Docker 이미지 ID를 파일에 저장하는 옵션입니다.
–iidfile과 –tag 차이는 무엇인가요?
Tag는 사람이 사용하는 이미지 이름이고, IID는 이미지 고유 식별자입니다.
Image ID는 어디에 활용하나요?
CI/CD 자동화, 이미지 검증, 빌드 결과 추적 등에 활용합니다.
파일에는 어떤 값이 저장되나요?
일반적으로 sha256 형식의 이미지 ID가 저장됩니다.
마무리
Docker Buildx Build –iidfile은 Docker 이미지 빌드 결과를 정확하게 추적하기 위한 유용한 옵션입니다.
Tag는 사람이 관리하기 편하지만 변경될 수 있는 값이고, Image ID는 특정 빌드 결과를 식별하는 고유 값입니다.
특히 CI/CD 환경에서는 --iidfile을 활용하면 빌드 결과를 자동으로 저장하고 검증할 수 있어 더욱 안정적인 Docker 이미지 관리 환경을 구축할 수 있습니다.