Docker Buildx는 기존 Docker Build 기능을 확장한 강력한 이미지 빌드 도구입니다.
멀티 플랫폼 이미지 생성, 고급 Cache 관리, 병렬 빌드 등 다양한 기능을 제공하며 최근 Docker 기반 개발과 배포 환경에서 많이 사용되고 있습니다.
하지만 Buildx 기능을 제대로 활용하려면 먼저 Builder를 생성해야 합니다.
Docker Buildx Builder는 실제 이미지 빌드를 수행하는 실행 환경입니다. 기본 Builder를 사용할 수도 있지만, 프로젝트별 또는 목적별로 새로운 Builder를 생성하면 더욱 효율적인 빌드 환경을 구성할 수 있습니다.
이때 사용하는 명령어가 바로 docker buildx create입니다.
Docker Buildx Create는 새로운 Buildx Builder 인스턴스를 생성하는 명령어입니다. 생성한 Builder는 특정 드라이버, Docker 환경, BuildKit 설정을 기반으로 이미지를 빌드할 수 있습니다.
이번 글에서는 Docker Buildx Create의 개념부터 기본 사용법, Builder 옵션, 원격 Builder 생성, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Buildx Builder란 무엇인가?
Docker Buildx Builder는 Docker 이미지를 생성하는 빌드 실행 환경입니다.
기존 Docker Build는 기본 Builder를 사용하지만 Buildx에서는 여러 개의 Builder를 생성하고 원하는 환경에서 사용할 수 있습니다.
Builder는 다음과 같은 역할을 합니다.
- Dockerfile 실행
- BuildKit 실행
- 이미지 Layer 생성
- Cache 관리
- 멀티 플랫폼 빌드 수행
Docker Buildx Create는 언제 사용하는가?
다음과 같은 상황에서 사용합니다.
- 새로운 Build 환경 구성
- 멀티 플랫폼 이미지 빌드
- CI/CD 전용 Builder 생성
- 프로젝트별 빌드 환경 분리
- 원격 Build 서버 구성
대규모 Docker 환경에서는 Builder 관리가 매우 중요합니다.
Docker Buildx Builder 목록 확인하기
Builder 생성 전에 현재 상태를 확인합니다.
docker buildx ls
출력 예:
NAME/NODE DRIVER
default docker
기본 Builder가 존재하는 것을 확인할 수 있습니다.
Docker Buildx Create 기본 사용법
가장 기본적인 Builder 생성 방법입니다.
docker buildx create --name my-builder
my-builder라는 새로운 Builder가 생성됩니다.
Builder 생성 후 바로 사용하기
--use 옵션을 추가하면 생성과 동시에 활성화됩니다.
docker buildx create \
--name my-builder \
--use
확인:
docker buildx ls
출력:
my-builder *
현재 Builder가 활성화된 것을 확인할 수 있습니다.
Docker Container Driver 사용하기
Buildx에서는 여러 Driver를 사용할 수 있습니다.
대표적인 Driver:
- docker
- docker-container
- kubernetes
- remote
일반적으로 멀티 플랫폼 빌드에서는 docker-container Driver를 많이 사용합니다.
생성:
docker buildx create \
--name multi-builder \
--driver docker-container \
--use
BuildKit 컨테이너 기반 Builder가 생성됩니다.
기존 Docker Host 기반 Builder 생성하기
특정 Docker Host를 Builder로 사용할 수 있습니다.
docker buildx create \
--name remote-builder \
ssh://user@server
원격 서버의 Docker 환경을 빌드 서버로 사용할 수 있습니다.
Builder 이름 지정하기
Builder 이름은 관리 목적에 맞게 지정하는 것이 좋습니다.
추천 예:
production-builder
arm-builder
ci-builder
test-builder
프로젝트와 용도를 구분하면 관리가 쉬워집니다.
Builder 생성 후 확인하기
생성된 Builder 상세 정보를 확인합니다.
docker buildx inspect my-builder
확인 가능 정보:
- Driver
- BuildKit 상태
- 지원 플랫폼
- Node 정보
Builder 활성화하기
기존 Builder를 사용하려면:
docker buildx use my-builder
현재 활성 Builder 확인:
docker buildx ls
별표(*)가 표시된 Builder가 현재 사용 중입니다.
Docker Buildx Create 실무 활용 예제
Docker Buildx Create는 프로젝트 목적에 맞는 전용 Builder를 생성하여 더욱 효율적인 Docker 이미지 빌드 환경을 구성할 때 사용합니다.
특히 멀티 플랫폼 이미지 제작이나 CI/CD 자동 빌드 환경에서는 별도의 Builder를 생성하여 관리하는 것이 일반적입니다.
멀티 플랫폼 전용 Builder 생성하기
ARM과 AMD64 이미지를 동시에 빌드하기 위한 Builder를 생성합니다.
docker buildx create \
--name multi-platform-builder \
--driver docker-container \
--use
생성 후 확인:
docker buildx ls
출력:
NAME DRIVER
multi-platform-builder * docker-container
멀티 플랫폼 빌드를 위한 Builder가 활성화됩니다.
CI/CD 전용 Builder 생성하기
Jenkins, GitHub Actions 같은 자동화 환경에서는 별도의 Builder를 사용하는 것이 좋습니다.
docker buildx create \
--name ci-builder \
--driver docker-container \
--use
CI/CD 환경에서 독립적인 빌드 공간을 사용할 수 있습니다.
원격 서버 Builder 생성하기
빌드 작업을 별도의 서버에서 수행할 수도 있습니다.
docker buildx create \
--name remote-builder \
ssh://user@build-server
대용량 이미지를 빌드할 때 빌드 전용 서버를 활용할 수 있습니다.
Builder 상태 확인하기
현재 Builder 정보를 확인합니다.
docker buildx inspect
출력 예:
Name: multi-platform-builder
Driver: docker-container
Platforms:
linux/amd64
linux/arm64
지원 가능한 플랫폼을 확인할 수 있습니다.
Builder 부팅하기
생성한 Builder가 실행되지 않는 경우:
docker buildx inspect --bootstrap
BuildKit 컨테이너를 시작하고 준비 상태를 확인합니다.
출력:
Status: running
특정 Builder로 이미지 빌드하기
Builder를 지정하여 빌드할 수 있습니다.
docker buildx build \
--builder multi-platform-builder \
-t my-app .
특정 빌드 환경을 명확하게 사용할 수 있습니다.
여러 Builder 관리하기
환경별 Builder 구성 예:
default-builder
↓
개발 환경
----------------
ci-builder
↓
자동 빌드 환경
----------------
production-builder
↓
운영 배포 환경
프로젝트 규모가 커질수록 Builder를 분리하면 관리가 쉬워집니다.
Linux 서버 문제 해결
개발팀에서 Docker 이미지를 빌드하는 시간이 점점 길어지는 문제가 발생했습니다.
기존에는 기본 Builder만 사용하고 있었습니다.
확인:
docker buildx ls
결과:
default
멀티 플랫폼 빌드와 Cache 활용을 위해 전용 Builder를 생성했습니다.
docker buildx create \
--name production-builder \
--driver docker-container \
--use
Builder 상태 확인:
docker buildx inspect --bootstrap
이후 이미지 빌드:
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t company/app:v1 \
--push .
기존보다 안정적으로 여러 플랫폼 이미지를 생성할 수 있었고 CI/CD 빌드 환경도 개선되었습니다.
Docker Buildx Create를 활용하면 빌드 환경을 목적별로 분리하여 더욱 효율적인 이미지 관리가 가능합니다.
Docker Buildx Create 사용 시 주의사항
Docker Buildx Create를 사용할 때는 다음 사항을 확인해야 합니다.
첫 번째는 Builder를 너무 많이 생성하지 않는 것이 좋습니다.
사용하지 않는 Builder가 많아지면 관리가 복잡해집니다.
두 번째는 docker-container Driver 사용 시 BuildKit 컨테이너가 생성됩니다.
서버 리소스를 일부 사용하므로 상태 확인이 필요합니다.
세 번째는 원격 Builder 사용 시 SSH 권한과 네트워크 연결 상태를 확인해야 합니다.
네 번째는 멀티 플랫폼 빌드 전에 Builder가 해당 플랫폼을 지원하는지 확인해야 합니다.
Best Practice
Docker Buildx Create를 사용할 때는 다음 방법을 추천합니다.
- 목적별 Builder 이름을 사용합니다.
- 멀티 플랫폼용 Builder를 별도로 구성합니다.
- CI/CD 전용 Builder를 관리합니다.
- 생성 후
inspect --bootstrap으로 상태 확인합니다. - 사용하지 않는 Builder는 정리합니다.
- Build Cache와 함께 활용합니다.
이러한 방법을 적용하면 안정적이고 빠른 Docker 빌드 환경을 구축할 수 있습니다.
자주 묻는 질문
Docker Buildx Create는 Docker 서버를 생성하나요?
아닙니다.
이미 존재하는 Docker 환경에서 빌드를 수행할 Builder 설정을 생성합니다.
Builder는 여러 개 만들 수 있나요?
가능합니다.
개발, 테스트, 운영, CI/CD 등 목적별로 여러 Builder를 생성할 수 있습니다.
기본 Builder와 직접 만든 Builder의 차이는 무엇인가요?
직접 만든 Builder는 Driver, 플랫폼, 빌드 환경을 세밀하게 설정할 수 있습니다.
Builder를 삭제하면 이미지도 삭제되나요?
아닙니다.
Builder 설정만 삭제되며 기존 Docker 이미지는 유지됩니다.
마무리
Docker Buildx Create는 Docker 이미지 빌드 환경을 관리하기 위한 핵심 명령어입니다.
전용 Builder를 생성하면 멀티 플랫폼 빌드, CI/CD 자동화, 원격 빌드 서버 구성 등 더욱 고급 Docker 빌드 환경을 구축할 수 있습니다.
특히 docker-container Driver 기반 Builder를 활용하면 BuildKit 기능을 최대한 활용할 수 있으며, 대규모 프로젝트에서도 안정적인 이미지 빌드 환경을 만들 수 있습니다.