Docker Buildx Bake Tags 사용법 완벽 가이드! Docker 이미지 버전 관리하기

Docker Image를 운영 환경에서 관리할 때 가장 중요한 요소 중 하나는 Tag(태그) 입니다.

Docker Image는 같은 이름이라도 Tag를 통해 여러 버전을 구분할 수 있습니다.

예:

company/app:v1.0.0

company/app:v1.1.0

company/app:latest

Tag를 활용하면:

  • 버전 관리
  • 배포 관리
  • Rollback
  • 개발·테스트·운영 분리

가 가능합니다.

Docker Buildx Bake에서는 tags 옵션을 사용하여 생성할 Image 이름과 버전을 관리할 수 있습니다.

예:

docker-bake.hcl

target "app" {

  tags = [
    "company/app:v1.0.0"
  ]

}

실행:

docker buildx bake app --push

결과:

Docker Image 생성

↓

company/app:v1.0.0

↓

Registry 저장

이번 글에서는 Docker Buildx Bake Tags의 개념부터 Tag 설정 방법, 버전 관리, Multi-platform Image, CI/CD 자동 Tag 생성까지 자세히 알아보겠습니다.

Docker Buildx Bake Tags란 무엇인가?

Docker Buildx Bake Tags는 Build 결과로 생성되는 Docker Image 이름과 버전을 지정하는 기능입니다.

기본 구조:

Registry 주소

+

Repository 이름

+

Tag 버전

예:

docker.io/company/app:v1.0.0

구성:

docker.io
=
Registry


company/app
=
Image 이름


v1.0.0
=
Tag

Docker Buildx Bake Tags가 필요한 이유

Tag 없이 Image를 관리하면 문제가 발생합니다.

예:

company/app:latest

문제:

  • 현재 버전 확인 어려움
  • 이전 버전 복구 어려움
  • 배포 추적 어려움

Tag 사용:

company/app:v1.0.0

company/app:v1.1.0

company/app:v2.0.0

장점:

  • 명확한 버전 관리
  • 안정적인 배포
  • 빠른 Rollback
  • Image 추적 가능

Docker Buildx Bake Tags 기본 설정

docker-bake.hcl:

target "app" {

  tags = [
    "company/app:v1"
  ]

}

실행:

docker buildx bake app

결과:

company/app:v1

↓

Docker Image 생성

Docker Buildx Bake 여러 Tag 사용하기

하나의 Image에 여러 Tag를 지정할 수 있습니다.

예:

target "production" {

  tags = [

    "company/app:v1.0.0",

    "company/app:latest"

  ]

}

결과:

company/app:v1.0.0

+

company/app:latest

동일한 Image를 여러 이름으로 관리할 수 있습니다.

Docker Buildx Bake Version Tag 관리 방법

운영 환경에서는 Semantic Versioning 방식을 많이 사용합니다.

형식:

Major.Minor.Patch

예:

v1.0.0

의미:

v1

↓

큰 변경


0

↓

기능 추가


0

↓

버그 수정

예:

v2.1.5

Docker Buildx Bake latest Tag 사용법

latest는 가장 많이 사용하는 Tag입니다.

예:

tags = [

  "company/app:latest"

]

장점:

  • 최신 Image 접근 쉬움

단점:

  • 정확한 버전 확인 어려움
  • Rollback 어려움

운영 환경에서는:

company/app:v1.2.0

+

company/app:latest

같이 사용하는 것을 권장합니다.

Docker Buildx Bake 환경별 Tags 관리

개발:

target "dev" {

  tags = [

    "company/app:dev"

  ]

}

테스트:

target "test" {

  tags = [

    "company/app:test"

  ]

}

운영:

target "production" {

  tags = [

    "company/app:v1.0.0"

  ]

}

하나의 Dockerfile로 환경별 Image를 관리할 수 있습니다.

Docker Buildx Bake Tags와 Registry Push

Registry Push:

docker buildx bake production --push

예:

target "production" {

  tags = [

    "registry.company.com/backend:v1.0.0"

  ]

}

결과:

Registry

↓

backend:v1.0.0 저장

Docker Buildx Bake Tags와 CI/CD 자동 생성

CI/CD에서는 Tag를 자동 생성하는 경우가 많습니다.

예:

Git Commit:

a82fd91

생성 Tag:

company/app:a82fd91

docker-bake.hcl:

target "app" {

  tags = [

    "company/app:${VERSION}"

  ]

}

활용:

  • Commit 기반 배포
  • Release 자동화
  • Rollback 관리

Docker Buildx Bake Git Tag 활용

Git Tag:

git tag v1.0.0

Docker Image:

company/app:v1.0.0

흐름:

Git Release

↓

Docker Build

↓

동일 버전 Tag 생성

↓

배포

Docker Buildx Bake Tags Multi-platform 활용

Multi-platform Image에서도 Tag를 사용할 수 있습니다.

예:

target "app" {

  platforms = [

    "linux/amd64",

    "linux/arm64"

  ]

  tags = [

    "company/app:v1.0.0"

  ]

}

결과:

company/app:v1.0.0

├── linux/amd64

└── linux/arm64

하나의 Tag로 여러 플랫폼을 관리합니다.

Docker Buildx Bake Tags 실무 예제

프로젝트:

project/

├── Dockerfile

├── docker-bake.hcl

└── deployment.yaml

docker-bake.hcl:

target "production" {

  tags = [

    "registry.company.com/app:v1.5.0",

    "registry.company.com/app:latest"

  ]

  platforms = [

    "linux/amd64",

    "linux/arm64"

  ]

}

실행:

docker buildx bake production --push

결과:

Registry

↓

app:v1.5.0

↓

app:latest

Docker Buildx Bake Tags 문제 해결

Tag Push 오류

오류:

denied: requested access

확인:

  • Registry 로그인
  • Repository 권한
  • Tag 이름

잘못된 Tag 형식

잘못된 예:

app version 1

올바른 예:

app:v1.0.0

latest가 이전 Image를 가리키는 경우

새 Image Push 후 Tag 연결을 확인합니다.

Docker Buildx Bake Tags 사용 시 주의사항

첫 번째는 운영 환경에서 latest만 사용하는 것을 피하는 것이 좋습니다.

두 번째는 버전 규칙을 정해야 합니다.

세 번째는 Image와 Tag 관리 정책이 필요합니다.

네 번째는 Release 버전과 Git 버전을 일치시키는 것이 좋습니다.

Best Practice

Docker Buildx Bake Tags 활용 방법:

  • Semantic Version 사용
  • latest는 보조 사용
  • 환경별 Tag 분리
  • Git Tag 연동
  • CI/CD 자동 생성
  • Rollback 가능한 버전 유지

자주 묻는 질문

Docker Buildx Bake Tags는 무엇인가요?

생성되는 Docker Image 이름과 버전을 지정하는 기능입니다.

여러 Tag를 동시에 만들 수 있나요?

가능합니다.

하나의 Image에 여러 Tag를 지정할 수 있습니다.

latest만 사용해도 되나요?

가능하지만 운영 환경에서는 버전 Tag를 함께 사용하는 것이 안전합니다.

CI/CD에서 자동 Tag 생성이 가능한가요?

가능합니다.

Git Commit, Release Version 등을 활용할 수 있습니다.

마무리

Docker Buildx Bake Tags는 Docker Image를 체계적으로 관리하기 위한 핵심 기능입니다.

Tag를 활용하면 Image 버전, 배포 상태, 환경별 구성을 명확하게 관리할 수 있으며 운영 환경에서도 안정적인 배포와 Rollback이 가능합니다.

특히 CI/CD, Kubernetes, Private Registry 환경에서는 자동 Tag 생성과 버전 관리 전략을 함께 적용하면 효율적인 Docker 운영 환경을 구축할 수 있습니다.

댓글 남기기