Ubuntu 20.04에서 Docker Buildx 설정 및 빌드 예시

2–3분

Docker Buildx는 Docker CLI의 확장으로, 멀티 플랫폼 이미지를 빌드하고 관리할 수 있는 기능을 제공합니다. 이 가이드는 Ubuntu 20.04 환경에서 Docker Buildx를 설정하고 간단한 빌드 예제를 통해 사용법을 익히는 과정을 다룹니다

1. 기존 Docker 설치 제거 (이미 설치된 경우)

먼저, 기존에 설치된 Docker가 있다면 이를 제거합니다.

sudo apt-get remove docker docker-engine docker.io containerd runc

2. 필요한 패키지 설치

Docker 설치를 위해 필요한 패키지를 설치합니다.

sudo apt-get update
sudo apt-get install \
  ca-certificates \
  curl \
  gnupg \
  lsb-release

3. Docker 공식 GPG 키 추가

Docker 패키지의 무결성을 확인하기 위해 공식 GPG 키를 추가합니다.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4. Docker APT 저장소 추가

Docker 패키지를 설치할 수 있도록 Docker의 공식 APT 저장소를 추가합니다.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. Docker 및 관련 패키지 설치

Docker와 관련된 패키지를 설치합니다.

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin

6. Docker 서비스 시작 및 자동 시작 설정

Docker 서비스를 시작하고, 시스템 부팅 시 자동으로 시작되도록 설정합니다.

sudo systemctl start docker
sudo systemctl enable docker

7. Docker 데몬 설정

Docker 데몬 설정 파일을 열어 BuildKit 기능을 활성화합니다.

sudo nano /etc/docker/daemon.json

설정 파일에 아래 내용을 추가하거나 수정합니다.

{
  "features": {
    "buildkit": true
  },
  "experimental": true
}

이 설정은 Docker 데몬에서 BuildKit을 활성화하고, 실험적 기능을 사용할 수 있도록 합니다

설정을 저장한 후 Docker 데몬을 재시작합니다.

sudo systemctl restart docker

8. Docker Buildx 설정 및 빌더 인스턴스 생성

이제 Docker Buildx를 설정하고, 새로운 빌더 인스턴스를 생성합니다.

docker buildx create --use --name mybuilder --driver docker-container

위 명령어는 mybuilder라는 이름의 빌더 인스턴스를 생성하고, Docker Buildx에서 사용할 수 있도록 설정합니다.

9. Docker Buildx를 사용한 빌드 예제

이제 간단한 Dockerfile을 사용하여 Docker Buildx로 이미지를 빌드해보겠습니다. 먼저, 아래와 같은 내용으로 Dockerfile을 생성합니다.

# Dockerfile
FROM alpine:3.15
RUN echo "Hello, Buildx!" > /hello.txt
CMD ["cat", "/hello.txt"]

이제 Docker Buildx를 사용하여 이미지를 빌드합니다.

docker buildx build --platform linux/amd64,linux/arm64 -t myimage:latest .

위 명령어는 amd64arm64 플랫폼에서 실행 가능한 이미지를 빌드하고, myimage:latest 태그를 붙입니다. --push 옵션을 추가하면 Docker Hub와 같은 레지스트리에 이미지를 바로 푸시할 수도 있습니다.

10. 빌드된 이미지 실행

마지막으로, 빌드된 이미지를 실행하여 결과를 확인합니다.

docker run --rm myimage:latest

위 명령어를 실행하면 "Hello, Buildx!" 메시지가 출력될 것입니다.

결론

이제 Docker Buildx를 설치하고, 멀티 플랫폼 빌드를 수행할 수 있습니다. Docker Buildx는 다양한 플랫폼에서 애플리케이션을 빌드하는 데 매우 유용한 도구이며, 위 가이드를 통해 기본적인 설정과 사용법을 익힐 수 있습니다.