Docker Buildx Build –output 사용법 완벽 가이드! 빌드 결과 출력하기

Docker 이미지를 빌드하면 일반적으로 결과물은 Docker Image 형태로 생성됩니다.

하지만 실제 개발 및 운영 환경에서는 단순히 이미지를 만드는 것 외에도 다양한 형태의 결과물이 필요합니다.

예:

  • Docker Image 저장
  • Registry Push
  • 로컬 파일 출력
  • OCI 이미지 생성
  • 빌드 결과 파일 추출
  • CI/CD Artifact 저장

이러한 빌드 결과의 저장 방식을 제어하기 위해 사용하는 기능이 바로 --output 옵션입니다.

Docker Buildx Build의 --output 옵션은 빌드 결과물을 어떤 형식으로 어디에 저장할지 지정하는 기능입니다.

예:

docker buildx build \
--output type=docker \
-t app:v1 .

빌드 결과를 원하는 형태로 관리할 수 있습니다.

이번 글에서는 Docker Buildx Build –output의 개념부터 Output 종류, Docker Image 저장, 파일 출력, Registry 활용, CI/CD 적용 방법까지 자세히 알아보겠습니다.

Docker Buildx Build –output이란 무엇인가?

--output은 Docker Buildx 빌드 결과를 저장하는 방식을 지정하는 옵션입니다.

기본 형식:

docker buildx build \
--output type=출력방식 .

빌드 과정:

Dockerfile

↓

Build 실행

↓

결과 생성

↓

지정한 위치로 출력

Docker Buildx Build –output이 필요한 이유

기본 Docker Build 결과:

Docker Image

하지만 상황에 따라 다른 결과가 필요합니다.

예:

애플리케이션 파일만 필요

↓

local 출력


배포 이미지 필요

↓

registry 출력


테스트용 이미지 필요

↓

docker 출력

목적에 맞는 출력 방식을 선택할 수 있습니다.

Docker Buildx Build –output 기본 사용법

예:

docker buildx build \
--output type=docker \
-t app:v1 .

Docker Engine에 이미지 형태로 저장합니다.

확인:

docker images

Docker Buildx Build Output 주요 종류

Output Type설명
dockerDocker 이미지 저장
image이미지 생성
registryRegistry 저장
local파일 시스템 출력
tarTar 파일 생성
ociOCI 이미지 생성

type=docker 사용법

로컬 Docker 이미지로 저장합니다.

예:

docker buildx build \
--output type=docker \
-t test-app:v1 .

결과:

Docker Engine

↓

test-app:v1

로컬에서 바로 실행할 수 있습니다.

type=registry 사용법

Registry에 이미지를 저장합니다.

예:

docker buildx build \
--output type=registry \
-t company/app:v1 .

실무에서는 보통:

docker buildx build \
-t company/app:v1 \
--push .

방식을 많이 사용합니다.

type=local 사용법

빌드 결과를 폴더에 저장합니다.

예:

docker buildx build \
--output type=local,dest=./result .

결과:

result/

├── 파일

└── 생성 결과

정적 파일 생성이나 Artifact 저장에 활용합니다.

type=tar 사용법

결과물을 Tar 파일로 생성합니다.

예:

docker buildx build \
--output type=tar,dest=image.tar .

결과:

image.tar

파일 형태로 전달할 수 있습니다.

type=oci 사용법

OCI 표준 이미지 형식으로 출력합니다.

예:

docker buildx build \
--output type=oci,dest=image.tar .

컨테이너 표준 형식으로 관리할 수 있습니다.

Docker Buildx Build –output과 –load 차이

비슷해 보이지만 목적이 다릅니다.

–load

docker buildx build \
--load \
-t app:v1 .

목적:

  • Docker Engine으로 이미지 가져오기
  • 로컬 테스트

–output

docker buildx build \
--output type=local,dest=./result .

목적:

  • 다양한 형태 출력
  • 파일 저장
  • 결과 관리

정리:

--load

= 로컬 Docker 이미지 저장


--output

= 결과 저장 방식 지정

Docker Buildx Build –output 실무 활용 예제

CI/CD Artifact 생성

빌드:

docker buildx build \
--output type=local,dest=./artifact .

결과:

artifact/

↓

CI 저장 파일

배포 과정에서 사용할 수 있습니다.

정적 웹 사이트 빌드 활용

Dockerfile:

FROM node

RUN npm install

RUN npm run build

출력:

docker buildx build \
--output type=local,dest=./dist .

생성:

dist/

├── index.html

└── assets

빌드 결과 파일만 가져올 수 있습니다.

Linux 서버 문제 해결

Docker 빌드 후 이미지가 아닌 결과 파일이 필요했습니다.

기존:

docker buildx build \
-t app:v1 .

문제:

이미지만 생성됨

파일 결과 없음

해결:

docker buildx build \
--output type=local,dest=./build-result .

결과:

build-result/

↓

필요한 파일 생성

원하는 결과물을 얻을 수 있었습니다.

Docker Buildx Build –output 사용 시 주의사항

첫 번째는 Output Type에 따라 결과가 완전히 달라집니다.

두 번째는 멀티 플랫폼 빌드에서는 Output 방식 선택이 중요합니다.

세 번째는 Registry 저장과 로컬 저장 목적을 구분해야 합니다.

네 번째는 CI/CD 환경에서는 결과 경로 관리가 필요합니다.

Best Practice

Docker Buildx Build –output 활용 방법:

  • 로컬 테스트는 type=docker 활용
  • 파일 추출은 type=local 사용
  • 운영 배포는 Registry 활용
  • OCI 필요 시 type=oci 사용
  • CI Artifact 저장 활용
  • 목적에 맞는 Output 선택

자주 묻는 질문

Docker Buildx Build –output은 무엇인가요?

Docker 빌드 결과물을 원하는 방식으로 저장하는 옵션입니다.

이미지를 저장할 수도 있나요?

가능합니다.

type=docker, type=registry 등을 사용할 수 있습니다.

파일 형태 결과도 만들 수 있나요?

가능합니다.

type=local을 사용하면 됩니다.

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

네.

빌드 결과 파일 저장과 배포 자동화에 활용됩니다.

마무리

Docker Buildx Build –output은 Docker 빌드 결과를 다양한 형태로 관리할 수 있게 해주는 중요한 옵션입니다.

단순히 Docker 이미지를 생성하는 것을 넘어 파일 출력, Registry 저장, OCI 이미지 생성 등 다양한 목적에 맞게 결과물을 관리할 수 있습니다.

특히 CI/CD 환경에서는 빌드 결과물을 Artifact로 저장하거나 배포 단계와 연결할 수 있어 자동화된 Docker 운영 환경 구축에 매우 유용합니다.

댓글 남기기