macvlan 네트워크 드라이버

macvlan 네트워크 드라이버

Docker의 macvlan 네트워크 드라이버를 설명하는 문서예요. 컨테이너에 MAC 주소를 부여해 물리 네트워크에 직접 연결해요.

출처: Macvlan networking driver

본문

macvlan 드라이버는 컨테이너마다 자체 MAC(및 IP) 주소를 부여해, 컨테이너가 물리 네트워크의 다른 장치처럼 직접 통신하게 해요. 브리지 가상화 없이 네트워크에 직접 노출돼요.

사용 예시

$ docker network create -d macvlan \
  --subnet=192.168.0.0/24 \
  --gateway=192.168.0.1 \
  -o parent=eth0 mynet
$ docker run --network mynet nginx

특징

  • 컨테이너가 실제 네트워크 장치처럼 동작해 외부에서 직접 접근할 수 있어요.
  • NAT 없이 라우팅되므로 지연이 낮아요.

주의

  • 물리 네트워크의 IP 주소 대여가 필요해서 IP 관리가 중요해요.
  • 호스트와 컨테이너 간 직접 통신은 기본적으로 안 되는 등 제약이 있어요.
  • 스위치 포트당 MAC 주소 수 제한(포트 보안)과 충돌할 수 있어요.
  • Wi-Fi 등 일부 인터페이스/환경에서는 동작하지 않을 수 있어요.

기존 물리 네트워크에 컨테이너를 직접 붙여야 하는 요구(예: 레거시 IP 기반 어플라이언스)에 적합해요. 대부분의 경우는 bridge가 더 간단한 선택이에요.

더 알아보기