Docker Buildx Build –pull 사용법 완벽 가이드! 최신 Base Image 가져오기

Docker 이미지는 대부분 기존 이미지를 기반으로 생성됩니다.

예:

FROM ubuntu:latest

이처럼 Dockerfile의 FROM 명령어는 Base Image를 사용합니다.

하지만 Base Image는 시간이 지나면서 변경될 수 있습니다.

예:

  • 보안 업데이트 적용
  • 패키지 버전 변경
  • 취약점 수정
  • 최신 운영체제 반영

문제는 Docker Build가 항상 최신 Base Image를 자동으로 가져오는 것은 아니라는 점입니다.

이때 사용하는 옵션이 바로 **--pull**입니다.

docker buildx build --pull은 빌드 과정에서 Base Image를 항상 최신 상태로 확인하고 가져오는 옵션입니다.

예:

docker buildx build \
--pull \
-t app:v1 .

이번 글에서는 Docker Buildx Build –pull의 개념부터 기본 사용법, Docker Image 업데이트 방식, 보안 패치 적용, CI/CD 활용 방법까지 자세히 알아보겠습니다.

Docker Buildx Build –pull이란 무엇인가?

--pull은 Dockerfile의 FROM 이미지가 최신 버전인지 확인하는 옵션입니다.

기본 형식:

docker buildx build \
--pull \
-t 이미지명 .

빌드 과정:

Dockerfile 확인

↓

Base Image 최신 버전 확인

↓

필요하면 다운로드

↓

이미지 빌드

Docker Base Image란 무엇인가?

Base Image는 Docker 이미지의 시작점입니다.

예:

FROM node:20

COPY app .

RUN npm install

여기서:

node:20

=

Base Image

입니다.

Docker Buildx Build –pull이 필요한 이유

일반 빌드:

docker buildx build \
-t app:v1 .

동작:

기존 Base Image 확인

↓

Cache 사용 가능

문제:

오래된 Base Image를 계속 사용할 수 있습니다.

--pull 사용:

docker buildx build \
--pull \
-t app:v1 .

동작:

최신 Base Image 확인

↓

업데이트 적용

↓

새 이미지 생성

Docker Buildx Build –pull 기본 사용법

예:

docker buildx build \
--pull \
-t nginx-app:v1 .

Docker Hub에서 최신 Base Image 상태를 확인합니다.

Docker Buildx Build –pull과 Cache 관계

Cache를 사용하는 경우:

docker buildx build \
-t app:v1 .

기존 Layer를 사용할 수 있습니다.

하지만:

docker buildx build \
--pull \
-t app:v1 .

Base Image 업데이트 여부를 먼저 확인합니다.

Docker Buildx Build –pull 실무 활용 예제

보안 업데이트 적용

Dockerfile:

FROM ubuntu:latest

RUN apt update

기존:

docker buildx build \
-t secure-app:v1 .

오래된 Ubuntu Image 사용 가능성이 있습니다.

해결:

docker buildx build \
--pull \
-t secure-app:v1 .

최신 Base Image를 기준으로 다시 빌드합니다.

운영 배포 이미지 생성

운영 환경:

docker buildx build \
--pull \
--platform linux/amd64 \
-t company/app:${VERSION} \
--push .

최신 Base Image 기반의 운영 이미지를 생성할 수 있습니다.

CI/CD 환경 활용

CI Pipeline:

docker buildx build \
--pull \
--cache-from type=registry,ref=company/app:cache \
--cache-to type=registry,ref=company/app:cache \
-t company/app:v1 \
--push .

장점:

  • 최신 Base Image 확인
  • Cache 활용
  • 자동 배포 가능

Linux 서버 문제 해결

운영 서버에서 보안 패치가 적용되지 않는 문제가 발생했습니다.

기존 빌드:

docker buildx build \
-t app:v1 .

확인:

Using cache

이전 Base Image가 계속 사용되고 있었습니다.

해결:

docker buildx build \
--pull \
--no-cache \
-t app:v2 .

결과:

최신 Base Image 다운로드

↓

새 이미지 생성

보안 업데이트가 반영되었습니다.

Docker Buildx Build –pull 사용 시 주의사항

첫 번째는 Base Image 업데이트로 인해 예상치 못한 변경이 발생할 수 있습니다.

두 번째는 운영 환경에서는 이미지 버전을 고정하는 것이 좋습니다.

세 번째는 --pull--no-cache는 목적이 다릅니다.

네 번째는 정기적인 이미지 업데이트 정책이 필요합니다.

Best Practice

Docker Buildx Build –pull 활용 방법:

  • 보안 업데이트 시 사용
  • 운영 배포 전 최신 Image 확인
  • CI/CD 자동 빌드에 활용
  • Base Image 버전 관리
  • 테스트 후 운영 반영
  • 필요 시 –no-cache 조합 사용

자주 묻는 질문

Docker Buildx Build –pull은 무엇인가요?

Base Image의 최신 버전을 확인하고 가져오는 옵션입니다.

–pull과 –no-cache 차이는 무엇인가요?

--pull은 Base Image 업데이트 확인, --no-cache는 기존 Layer Cache 사용 중지입니다.

항상 –pull을 사용하는 것이 좋은가요?

운영 배포나 보안 업데이트 목적에서는 유용하지만, 테스트 환경에서는 상황에 따라 사용합니다.

latest Image를 사용해도 되나요?

가능하지만 운영 환경에서는 특정 버전 Tag 사용을 권장합니다.

마무리

Docker Buildx Build –pull은 Docker 이미지 보안과 최신 상태 유지를 위한 중요한 옵션입니다.

Base Image의 최신 업데이트를 확인하고 적용할 수 있어 운영 환경에서 보안 패치와 안정적인 이미지 관리를 돕습니다.

특히 CI/CD 환경에서는 --pull을 활용하여 최신 Base Image 기반의 Docker 이미지를 생성하고, 정기적인 이미지 업데이트 프로세스를 구축하는 것이 좋습니다.

댓글 남기기