Docker Buildx Build –network 사용법 완벽 가이드! 네트워크 설정하기

Docker 이미지를 빌드하는 과정에서는 외부 패키지를 다운로드하거나 내부 서버에 접근해야 하는 경우가 있습니다.

예:

  • Ubuntu 패키지 설치
  • npm 패키지 다운로드
  • Private Repository 접근
  • 사내 패키지 서버 연결
  • 네트워크 테스트

하지만 Docker Buildx Build는 기본적으로 격리된 네트워크 환경에서 빌드가 실행됩니다.

이 때문에 다음과 같은 문제가 발생할 수 있습니다.

패키지 다운로드 실패

내부 서버 접근 불가

DNS 오류 발생

네트워크 연결 실패

이때 사용하는 옵션이 바로 Docker Buildx Build –network입니다.

--network 옵션은 Docker 이미지 빌드 과정에서 사용할 네트워크 방식을 지정하는 기능입니다.

예:

docker buildx build \
--network host \
-t app:v1 .

빌드 과정에서 사용할 네트워크 환경을 변경할 수 있습니다.

이번 글에서는 Docker Buildx Build –network의 개념부터 네트워크 모드 종류, Host Network 사용법, 실무 활용 방법까지 자세히 알아보겠습니다.

Docker Buildx Build –network란 무엇인가?

--network는 Docker 빌드 과정에서 RUN 명령어가 사용할 네트워크 환경을 지정하는 옵션입니다.

기본 형식:

docker buildx build \
--network 네트워크모드 .

예:

docker buildx build \
--network host \
-t app:v1 .

빌드 단계의 네트워크 동작을 변경합니다.

Docker Buildx 기본 네트워크 동작

기본 빌드 환경:

Build Container

↓

격리된 Network

↓

외부 접근

Docker는 보안을 위해 빌드 환경을 분리합니다.

하지만 일부 프로젝트에서는 추가 네트워크 접근이 필요합니다.

Docker Buildx Build –network 사용 이유

다음 상황에서 사용합니다.

  • 패키지 다운로드 문제 해결
  • 내부 서버 접근
  • 사내 Registry 연결
  • DNS 문제 해결
  • 네트워크 환경 테스트

특히 기업 내부 환경에서는 자주 사용됩니다.

Docker Buildx Build –network 기본 사용법

Host Network 사용:

docker buildx build \
--network host \
-t app:v1 .

빌드 컨테이너가 호스트 네트워크를 사용할 수 있습니다.

Docker Buildx Build –network 주요 모드

대표적인 네트워크 모드:

모드설명
default기본 Docker 네트워크
host호스트 네트워크 사용
none네트워크 차단

–network default 사용법

기본 설정입니다.

예:

docker buildx build \
--network default \
-t app:v1 .

일반적인 빌드 환경입니다.

–network host 사용법

호스트 네트워크를 사용합니다.

예:

docker buildx build \
--network host \
-t app:v1 .

활용:

  • 내부 API 접근
  • 사내 서버 연결
  • 특정 DNS 환경 사용

–network none 사용법

네트워크를 완전히 차단합니다.

예:

docker buildx build \
--network none \
-t app:v1 .

보안이 중요한 빌드 환경에서 사용할 수 있습니다.

Dockerfile RUN 명령과 –network 관계

Dockerfile:

FROM ubuntu

RUN apt update

기본:

docker buildx build .

네트워크 문제 발생 가능:

Unable to connect repository

Host Network:

docker buildx build \
--network host .

패키지 다운로드가 정상적으로 진행됩니다.

Docker Buildx Build –network 실무 활용 예제

Private Package Server 접근

상황:

사내 패키지 서버:

192.168.0.100

접근 필요:

docker buildx build \
--network host \
-t internal-app:v1 .

내부 네트워크 접근이 가능합니다.

CI/CD 환경 활용

CI 서버에서:

docker buildx build \
--network host \
-t company/app:${VERSION} \
--push .

내부 서비스 접근이 필요한 빌드 환경에서 활용할 수 있습니다.

Linux 서버 문제 해결

Docker 이미지 빌드 중 패키지 설치 오류가 발생했습니다.

Dockerfile:

FROM ubuntu

RUN apt update

빌드:

docker buildx build \
-t app:v1 .

오류:

Could not resolve archive.ubuntu.com

네트워크 문제였습니다.

해결:

docker buildx build \
--network host \
-t app:v1 .

다시 빌드:

docker buildx build \
-t app:v1 .

정상적으로 패키지를 다운로드할 수 있었습니다.

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

첫 번째는 host 모드는 격리 수준이 낮아질 수 있습니다.

두 번째는 운영 환경에서는 필요한 경우에만 사용해야 합니다.

세 번째는 네트워크 접근 권한을 신중하게 관리해야 합니다.

네 번째는 단순한 패키지 오류라면 먼저 DNS와 Proxy 설정을 확인해야 합니다.

Best Practice

Docker Buildx Build –network 활용 방법:

  • 기본 network부터 사용
  • 필요한 경우만 host 사용
  • Private 환경에서 제한적으로 적용
  • CI/CD 권한 관리
  • 네트워크 문제 분석 후 적용
  • 보안 환경에서는 최소 권한 유지

자주 묻는 질문

Docker Buildx Build –network는 무엇인가요?

Docker 빌드 과정에서 사용할 네트워크 방식을 지정하는 옵션입니다.

host 네트워크는 언제 사용하나요?

빌드 과정에서 호스트 네트워크 접근이 필요할 때 사용합니다.

기본 네트워크가 가장 안전한가요?

네.

일반적인 Docker 빌드에서는 기본 설정 사용을 권장합니다.

네트워크를 차단할 수도 있나요?

가능합니다.

--network none을 사용할 수 있습니다.

마무리

Docker Buildx Build –network는 Docker 이미지 빌드 과정의 네트워크 환경을 제어하는 중요한 옵션입니다.

기본 네트워크 환경으로 충분한 경우도 많지만, 내부 서버 접근이나 특정 패키지 다운로드가 필요한 환경에서는 --network host를 활용하여 문제를 해결할 수 있습니다.

다만 Host Network는 보안 격리 수준을 낮출 수 있기 때문에 필요한 상황에서만 제한적으로 사용하는 것이 안정적인 Docker 운영 방법입니다.

댓글 남기기