본문 바로가기

원도우

[draft] Docker Buildx를 사용하여 이미지를 빌드하는 방법

Docker Buildx를 사용하여 이미지를 빌드하는 방법

Docker Buildx는 Docker의 확장 빌드 기능으로 하나의 Dockerfile을 사용하여 여러 플랫폼(멀티 아키텍처)용 이미지를 동시에 빌드할 수 있습니다.

예를 들어 amd64, arm64, arm/v7 등 다양한 CPU 아키텍처용 이미지를 한 번에 생성할 수 있습니다.

1. Docker Desktop 설치

Windows 사용자의 경우 Docker Desktop을 설치합니다.

 

설치 과정

  1. Docker 공식 사이트에서 Docker Desktop 다운로드
  2. 설치 후 Docker 실행
  3. PowerShell 또는 터미널에서 Docker 명령어 확인

확인 명령어

docker version

2. Dockerfile 작성

이미지를 빌드하기 위해 Dockerfile을 작성합니다.

Dockerfile에는 이미지 생성에 필요한 명령어와 설정이 포함됩니다.

FROM ubuntu:22.04

RUN apt update && \
    apt install -y net-tools

CMD ["/bin/bash"]

3. PowerShell 또는 터미널 실행

Windows 환경에서는 PowerShell 또는 Windows Terminal에서 Docker 명령어를 실행합니다.

4. Docker Buildx 활성화

Buildx 빌더를 생성하고 활성화합니다.

docker buildx create --use

빌더 목록 확인

docker buildx ls

5. Docker Buildx로 이미지 빌드

다음 명령어를 사용하여 멀티 플랫폼 이미지를 빌드할 수 있습니다.

docker buildx build --platform <PLATFORM> -t 이미지명:태그명 --file Dockerfile의_경로 .
  • --platform : 빌드 대상 플랫폼 지정
  • -t : 이미지 이름 및 태그
  • -f : Dockerfile 경로
  • . : 현재 디렉토리를 빌드 컨텍스트로 사용

예시 플랫폼

linux/amd64
linux/arm64
linux/arm/v7

6. Docker 이미지 확인

빌드된 이미지를 확인합니다.

docker images

7. Docker 이미지 정보 확인

이미지 상세 정보를 확인하려면 다음 명령어를 사용합니다.

docker inspect <컨테이너명 또는 컨테이너ID>

특정 정보만 확인

docker inspect 이미지명 --format='{{.Architecture}}'

nettools 이미지 빌드 및 Docker Hub 업로드

우분투 기반 nettools 이미지를 빌드하고 Docker Hub에 업로드하는 과정입니다.

 

Buildx 활성화

docker buildx create --use

멀티 아키텍처 이미지 빌드 및 Push

docker buildx build \
  --no-cache \
  --platform linux/amd64,linux/arm64 \
  --tag anti1346/ubuntu2204:nettools \
  --push .
  • --no-cache : 캐시 없이 새로 빌드
  • --platform : 멀티 플랫폼 빌드
  • --tag : Docker Hub 이미지 이름
  • --push : 빌드 후 Docker Hub로 업로드

이미지 다운로드 테스트

docker pull anti1346/ubuntu2204:nettools

이미지 아키텍처 확인

docker inspect anti1346/ubuntu2204:nettools --format='{{.Architecture}}'
amd64