Docker Buildx를 사용하다 보면 하나의 Builder만 사용하는 것이 아니라 여러 개의 Builder를 생성하여 다양한 빌드 환경을 구성하게 됩니다.
예를 들어:
- 기본 Docker Builder
- 멀티 플랫폼 Builder
- CI/CD 전용 Builder
- 테스트용 Builder
등을 각각 운영할 수 있습니다.
하지만 여러 Builder가 존재하면 원하는 Builder를 선택하여 사용해야 합니다.
이때 사용하는 명령어가 바로 Docker Buildx Use입니다.
Docker Buildx Use는 현재 사용할 Builder를 변경하는 명령어입니다.
선택한 Builder는 이후 실행하는 Docker Buildx 빌드 작업에서 기본 Builder로 사용됩니다.
이번 글에서는 Docker Buildx Use의 개념부터 기본 사용법, Builder 전환 방법, 멀티 플랫폼 환경 활용, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Buildx Use란 무엇인가?
Docker Buildx Use는 현재 활성화된 Builder를 변경하는 명령어입니다.
예를 들어 현재:
default *
Builder를 사용 중이라면,
다른 Builder로 변경할 수 있습니다.
docker buildx use multi-builder
변경 후:
multi-builder *
해당 Builder가 기본 빌드 환경이 됩니다.
Docker Buildx Use는 언제 사용하는가?
다음과 같은 상황에서 사용합니다.
- 멀티 플랫폼 빌드 전환
- CI/CD Builder 선택
- 테스트 환경 변경
- 프로젝트별 Builder 사용
- 빌드 환경 분리
여러 Builder를 관리하는 환경에서는 필수적인 명령어입니다.
Docker Buildx Use 기본 사용법
기본 형식:
docker buildx use [Builder 이름]
예:
docker buildx use production-builder
현재 Builder가 변경됩니다.
사용 가능한 Builder 확인하기
전환하기 전에 Builder 목록을 확인합니다.
docker buildx ls
출력:
NAME
default *
production-builder
multi-builder
변경할 Builder 이름을 확인합니다.
Builder 전환 확인하기
변경 후 확인:
docker buildx ls
결과:
NAME
default
multi-builder *
현재 선택된 Builder가 변경된 것을 확인할 수 있습니다.
Docker Buildx Use와 Create 관계
Builder는 먼저 생성되어 있어야 합니다.
생성:
docker buildx create --name multi-builder
확인:
docker buildx ls
사용:
docker buildx use multi-builder
순서:
Create → Ls → Use
입니다.
멀티 플랫폼 Builder로 전환하기
멀티 플랫폼 빌드를 위해 Builder를 변경합니다.
현재:
default *
변경:
docker buildx use multi-builder
확인:
docker buildx ls
결과:
multi-builder *
이후:
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t app:v1 .
멀티 플랫폼 빌드 환경을 사용할 수 있습니다.
Docker Buildx Use –global 옵션
Builder 선택 범위를 전체 Docker 환경으로 설정할 수 있습니다.
예:
docker buildx use --global production-builder
글로벌 Builder로 지정합니다.
환경에 따라 모든 프로젝트에서 해당 Builder를 기본으로 사용할 수 있습니다.
Docker Buildx Use 실무 활용 예제
프로젝트별 Builder 전환
프로젝트 A:
docker buildx use project-a-builder
빌드:
docker buildx build -t project-a:v1 .
프로젝트 B:
docker buildx use project-b-builder
각 프로젝트에 맞는 환경으로 빌드할 수 있습니다.
CI/CD Builder 선택
배포 서버에서:
확인:
docker buildx ls
변경:
docker buildx use ci-builder
이후 자동 빌드:
docker buildx build -t app:latest .
CI 전용 Builder를 사용할 수 있습니다.
Linux 서버 문제 해결
운영 서버에서 멀티 플랫폼 이미지 빌드를 실행했지만 원하는 결과가 나오지 않았습니다.
빌드:
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t app:v1 .
확인 결과:
linux/amd64 only
문제 원인을 확인했습니다.
Builder 목록 확인:
docker buildx ls
결과:
default *
multi-builder
기본 Builder를 사용하고 있었습니다.
멀티 플랫폼 Builder로 변경:
docker buildx use multi-builder
확인:
docker buildx ls
결과:
multi-builder *
다시 빌드:
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t app:v1 .
정상적으로 멀티 플랫폼 빌드가 실행되었습니다.
Docker Buildx Use는 잘못된 Builder 선택으로 발생하는 빌드 문제를 해결하는 기본 관리 명령어입니다.
Docker Buildx Use 사용 시 주의사항
첫 번째는 Builder가 존재해야 사용할 수 있습니다.
없는 Builder 이름을 입력하면 오류가 발생합니다.
두 번째는 현재 선택된 Builder를 확인하는 습관이 필요합니다.
docker buildx ls
세 번째는 운영 환경에서는 Builder 이름을 명확하게 관리해야 합니다.
네 번째는 프로젝트마다 다른 Builder를 사용할 경우 전환 상태를 확인해야 합니다.
Best Practice
Docker Buildx Use를 사용할 때는 다음 방법을 추천합니다.
- 전환 전
docker buildx ls로 확인합니다. - Builder 이름 규칙을 정합니다.
- 프로젝트별 Builder를 분리합니다.
- 멀티 플랫폼 Builder를 별도 관리합니다.
- 빌드 전 활성 Builder를 확인합니다.
- 사용하지 않는 Builder는 정리합니다.
자주 묻는 질문
Docker Buildx Use는 무엇인가요?
사용할 Buildx Builder를 변경하는 명령어입니다.
Use하면 Builder가 새로 생성되나요?
아닙니다.
기존에 생성된 Builder를 선택합니다.
현재 Builder 확인 방법은 무엇인가요?
docker buildx ls
명령으로 확인할 수 있습니다.
Use와 Create 차이는 무엇인가요?
Create는 Builder 생성, Use는 기존 Builder 선택입니다.
마무리
Docker Buildx Use는 여러 Builder 환경을 관리할 때 반드시 알아야 하는 핵심 명령어입니다.
현재 프로젝트에 맞는 Builder를 선택하고 멀티 플랫폼 빌드, CI/CD 빌드, 테스트 환경을 효율적으로 전환할 수 있습니다.
특히 여러 Builder를 운영하는 서버 환경에서는 docker buildx ls로 상태를 확인한 뒤 docker buildx use로 필요한 Builder를 선택하는 관리 방식이 안정적인 Docker 운영의 기본입니다.