Docker Buildx Bake Registry 사용법 완벽 가이드! Docker Image 저장소 관리하기

Docker Image를 Build한 이후 실제 서버 환경에서 사용하려면 Image를 저장하고 관리할 공간이 필요합니다.

이 역할을 하는 것이 Docker Registry입니다.

Registry는 Docker Image를 저장하고 배포하는 저장소입니다.

대표적인 Registry:

  • Docker Hub
  • GitHub Container Registry
  • Amazon ECR
  • Google Artifact Registry
  • Harbor
  • Private Docker Registry

기본 흐름:

Dockerfile

↓

Docker Buildx Bake

↓

Docker Image 생성

↓

Registry Push

↓

서버 Pull

↓

Container 실행

Docker Buildx Bake에서는 Registry 설정을 통해 Build한 Image를 자동으로 저장하고 관리할 수 있습니다.

예:

docker-bake.hcl

target "production" {

  tags = [

    "registry.company.com/app:v1"

  ]

}

실행:

docker buildx bake production --push

결과:

Image Build

↓

Registry 저장

↓

배포 가능한 Image 생성

이번 글에서는 Docker Buildx Bake Registry의 개념부터 Docker Hub, Private Registry, Image Tag 관리, Push 자동화, Production 운영 방법까지 자세히 알아보겠습니다.

Docker Buildx Bake Registry란 무엇인가?

Docker Registry는 Docker Image를 저장하는 서버입니다.

구조:

Developer

↓

Docker Buildx Bake

↓

Docker Image

↓

Container Registry

↓

Server Deployment

Registry에는 다음 정보가 저장됩니다.

  • Image Layer
  • Tag
  • Manifest
  • Multi-platform 정보
  • Attestation
  • SBOM

Docker Buildx Bake Registry가 필요한 이유

Local 환경에서는 Image를 만들 수 있지만 다른 서버에서는 사용할 수 없습니다.

예:

개발 PC

↓

Image 생성

↓

Local 저장

문제:

운영 서버

↓

Image 없음

↓

실행 불가

Registry 사용:

Build 서버

↓

Push

↓

Registry 저장

↓

운영 서버 Pull

장점:

  • 서버 간 Image 공유
  • 배포 자동화
  • 버전 관리
  • 안정적인 운영

Docker Buildx Bake Registry 기본 설정

docker-bake.hcl:

target "app" {

  tags = [

    "docker.io/company/app:v1"

  ]

}

실행:

docker buildx bake app --push

동작:

Image 생성

↓

Docker Hub Push

Docker Buildx Bake Docker Hub 사용법

Docker Hub는 가장 많이 사용하는 Public Registry입니다.

로그인:

docker login

Bake 설정:

target "production" {

  tags = [

    "username/app:v1"

  ]

}

Push:

docker buildx bake production --push

결과:

Docker Hub

↓

username/app:v1 저장

Docker Buildx Bake Private Registry 사용법

기업 환경에서는 Private Registry를 많이 사용합니다.

예:

registry.company.com/app:v1

설정:

target "production" {

  tags = [

    "registry.company.com/app:v1"

  ]

}

로그인:

docker login registry.company.com

Push:

docker buildx bake production --push

결과:

Private Registry

↓

Image 저장

Docker Buildx Bake Image Tag 관리

Tag는 Image 버전을 관리하는 중요한 요소입니다.

예:

app:v1

app:v1.1

app:latest

권장 방식:

Production:

app:1.0.0

개발:

app:dev

예:

target "production" {

  tags = [

    "registry.company.com/app:1.0.0"

  ]

}

Docker Buildx Bake Registry와 Multi-platform Image

Multi-platform Image는 Registry 사용이 필수에 가깝습니다.

예:

target "production" {

  platforms = [

    "linux/amd64",

    "linux/arm64"

  ]

  tags = [

    "registry.company.com/app:v1"

  ]

}

Push:

docker buildx bake production --push

결과:

Registry

app:v1

├── linux/amd64

└── linux/arm64

사용자는 동일한 Tag를 사용하지만 Docker가 환경에 맞는 Image를 선택합니다.

Docker Buildx Bake Registry와 Cache 활용

Registry는 Image뿐 아니라 Build Cache 저장에도 사용할 수 있습니다.

설정:

cache-to = [

"type=registry,ref=registry.company.com/app:cache"

]

cache-from = [

"type=registry,ref=registry.company.com/app:cache"

]

효과:

Registry Cache

↓

다음 Build 재사용

↓

Build 시간 감소

Docker Buildx Bake Registry와 CI/CD 자동화

실제 서버 운영에서는 CI/CD와 Registry를 함께 사용합니다.

구조:

Git Push

↓

CI 실행

↓

Docker Buildx Bake

↓

Registry Push

↓

Server Deploy

예:

- name: Build and Push

  run: |

    docker buildx bake production --push

자동 배포 환경을 구성할 수 있습니다.

Docker Buildx Bake Registry 실무 예제

프로젝트:

server-project/

├── Dockerfile

├── docker-bake.hcl

└── app/

docker-bake.hcl:

target "production" {

  tags = [

    "registry.company.com/server-api:v1.0.0"

  ]

  platforms = [

    "linux/amd64",

    "linux/arm64"

  ]

  output = [

    "type=image,push=true"

  ]

}

실행:

docker buildx bake production

결과:

Image Build

↓

Multi-platform 생성

↓

Registry Push

↓

배포 준비 완료

Docker Buildx Bake Registry 확인 방법

Image 목록 확인:

docker images

Registry Image 확인:

docker buildx imagetools inspect image-name

확인 가능:

  • Platform
  • Digest
  • Manifest
  • Attestation

Docker Buildx Bake Registry 문제 해결

Push 권한 오류

확인:

docker login

확인:

  • 계정 권한
  • Repository 권한
  • Token 설정

Image를 찾을 수 없는 경우

확인:

docker buildx imagetools inspect image-name

Tag 이름을 확인합니다.

Multi-platform Push 실패

확인:

  • Builder 설정
  • Registry 지원 여부
  • Platform 설정

Docker Buildx Bake Registry 사용 시 주의사항

첫 번째는 Image Tag 규칙을 정해야 합니다.

두 번째는 Production에서는 Version Tag 사용을 권장합니다.

세 번째는 Registry 접근 권한을 안전하게 관리해야 합니다.

네 번째는 오래된 Image와 Tag 정리가 필요합니다.

Best Practice

Docker Buildx Bake Registry 활용 방법:

  • Production Registry 운영
  • Version Tag 관리
  • Multi-platform Push
  • Cache 공유
  • CI/CD 연결
  • Image 보안 관리

자주 묻는 질문

Docker Registry란 무엇인가요?

Docker Image를 저장하고 배포하는 저장소입니다.

Docker Hub와 Private Registry 차이는 무엇인가요?

Docker Hub는 공개 서비스이고 Private Registry는 기업 내부 관리용 저장소입니다.

Multi-platform Image는 어디에 저장하나요?

일반적으로 Registry에 Push하여 관리합니다.

CI/CD에서도 사용할 수 있나요?

가능합니다.

Build → Push → Deploy 자동화 구조를 만들 수 있습니다.

마무리

Docker Buildx Bake Registry는 Docker Image를 실제 서버 환경에서 운영하기 위한 핵심 구성 요소입니다.

Build한 Image를 Registry에 저장하면 여러 서버와 환경에서 동일한 Image를 사용할 수 있으며, CI/CD 자동 배포 구조도 쉽게 구축할 수 있습니다.

특히 Multi-platform Build, Kubernetes, Cloud 환경에서는 Registry 기반 Image 관리가 필수적인 운영 방식입니다.

댓글 남기기