본문 바로가기
INFRA

[Docker] Docker Buildx 란?

by BTC_하동녹차 2023. 5. 25.

베하~! BTC_녹차공원 팀의 하동녹차 입니다.

벌써 5월이 얼마 남지 않았는데요! 시간이 정말 빠른 것 같습니다🤣

이번주는 Docker Buildx 에 대한 설명과 Docker buildx 사용법에 대해 설명 해드리겠습니다!

Docker buildx 란?


Docker Buildx는 Docker의 공식적인 멀티플랫폼 빌드 도구입니다. 

Buildx를 사용하면 동일한 Dockerfile로 여러 아키텍처나 운영 체제에 대한 이미지를 빌드할 수 있습니다. 

이는 다양한 환경에서 동일한 애플리케이션을 실행하거나 배포할 때 유용합니다.

 

Docker Buildx는 여러 가지 기능을 제공합니다.

1. 멀티플랫폼 빌드: Docker Buildx는 단일 Dockerfile로 다양한 아키텍처와 운영 체제에 대한 이미지를 빌드할 수 있습니다. 예를 들어, x86, ARM, POWER 등 다양한 아키텍처에서 동작하는 이미지를 동시에 빌드할 수 있습니다.

2. 병렬 빌드: Buildx는 여러 개의 빌드 인스턴스를 생성하여 동시에 여러 이미지를 빌드할 수 있습니다. 이는 빌드 시간을 단축하고 효율성을 향상시킵니다.

3. 캐시 관리: Buildx는 캐시를 효과적으로 관리하여 이미 빌드한 레이어를 재사용하고 중복 다운로드를 방지합니다. 이는 반복적인 빌드 시간을 크게 단축시키는 데 도움이 됩니다.

4. 빌드 시뮬레이션: Buildx는 빌드 전에 시뮬레이션을 수행하여 어떤 빌드 단계에서 어떤 도구가 사용되는지 확인할 수 있습니다. 이를 통해 빌드 설정을 검토하고 문제를 해결하는 데 도움을 줍니다.

Docker Buildx는 Docker CLI에 통합되어 있으며, Docker CLI를 통해 사용할 수 있습니다. Buildx를 사용하려면 Docker CLI 버전이 19.03 이상이어야 합니다. 

Docker Buildx는 멀티플랫폼 애플리케이션 개발 및 배포에 유용한 강력한 도구입니다. 다양한 아키텍처와 운영 체제에서 동작하는 애플리케이션을 개발하거나 이미지를 배포해야 할 때 유용하게 활용할 수 있습니다.

 

 

Docker buildx 설치


Docker buildx 설치 - Ubuntu 18.04 버전 

 

 

Docker CLI 업그레이드

sudo apt update
sudo apt install docker.io


Docker Buildx 설치

export DOCKER_BUILDKIT=1 # 빌드킷 활성화
docker build --platform=local -o . https://github.com/docker/buildx.git
mkdir -p ~/.docker/cli-plugins
mv buildx ~/.docker/cli-plugins/docker-buildx


Docker Buildx 테스트

docker buildx version


Docker Buildx 사용예시

docker buildx build --platform linux/amd64,linux/arm64 -t your-image-name .

 

Docker buildx 사용법


Docker Buildx 공식 사이트 : https://docs.docker.com/build/building/multi-platform/

1. Builder 생성 - buildx 를 사용하려면 builder 가 존재해야 합니다.

docker buildx create --name [name] --driver [option] --use --bootstrap

Ex) 

docker buildx create --name my-builder --driver docker-container --platform linux/amd64,linux/arm64,linux/arm/v7  --use --bootstrap

 

2. Builder 확인

docker buildx ls
docker buildx inspect

 

3. 이미지 Build 및 Docker Hub에 업로드

docker buildx build --platform linux/amd64,linux/arm64 -t <username>/<image>:latest --push .

Ex)

docker buildx build --platform linux/amd64,linux/arm64 -t dongha1009/test --push .

 

4. Docker Hub 업로드 확인

5. Docker Image 가져오기

docker pull <username>/<image>

 

 

 

 

 

Docker buildx 를 이용하여 Image Build 와  Push 를 하기 위해선 선행 작업이 필요 합니다.

 

선행 작업 사항 

 

1. Docker Hub 에 Repository 를 생성

 

2. 해당 서버에 Docker Hub 계정 로그인

당연하겠지만, docker login 을 하지 않는다면 권한 오류로 image 가 push 되지 않습니다.
docker login 명령어로 로그인 필수!!

 

 

이상 BTC_녹차공원 팀이였습니다!

베빠~!

'INFRA' 카테고리의 다른 글

[Gitlab] Gitlab Repository Mirroring 설정  (0) 2023.07.24
[Git] Git 개요 및 사용법  (0) 2023.06.22
[Docker] Dockerfile 작성법  (1) 2023.05.12
Gitlab에대해  (1) 2022.09.27
무정지를 위한 인프라 (2) 웹서버 이중화  (0) 2022.06.15

댓글