macvlan 네트워크 드라이버
macvlan 네트워크 드라이버
Docker의 macvlan 네트워크 드라이버를 설명하는 문서예요. 컨테이너에 MAC 주소를 부여해 물리 네트워크에 직접 연결해요.
본문
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가 더 간단한 선택이에요.