네트워크 드라이버
네트워크 드라이버 — 컨테이너가 통신하는 방식 고르기
컨테이너끼리 또는 호스트와 통신해야 하는 순간이 오면, '어떤 네트워크를 쓸까'가 고민되기 시작해요. 도커는 네트워킹 하위 시스템을 드라이버로 플러그인처럼 교체할 수 있게 설계했어요. 기본으로 제공되는 드라이버 몇 가지를 알면, 상황에 맞는 네트워크를 골라 쓸 수 있어요.
본문
드라이버 종류 한눈에 보기
도커의 네트워킹 하위 시스템은 드라이버를 기반으로 동작해요. 기본으로 제공되는 드라이버는 다음과 같아요.
bridge— 기본 네트워크 드라이버예요. 드라이버를 지정하지 않으면 만들게 되는 네트워크 유형이죠. 같은 호스트에 있는 다른 컨테이너와 통신해야 하는 애플리케이션에서 흔히 써요.host— 컨테이너와 도커 호스트 사이의 네트워크 격리를 제거하고 호스트의 네트워킹을 그대로 사용해요.overlay— 여러 도커 데몬을 서로 연결해서, 스웜 서비스와 컨테이너가 노드 간에 통신할 수 있게 해줘요. OS 수준의 라우팅을 할 필요가 없어지죠.ipvlan— IPv4와 IPv6 주소 지정을 모두 완전히 제어할 수 있게 해줘요. L2 VLAN 태깅과 IPvlan L3 라우팅까지 제어할 수 있어서, 언더레이 네트워크 통합을 원하는 운영자에게 적합해요.macvlan— 컨테이너에 MAC 주소를 부여해서, 네트워크에서 물리 장치처럼 보이게 해줘요. 도커 데몬이 MAC 주소로 컨테이너에게 트래픽을 라우팅하죠. 물리 네트워크에 직접 연결되길 기대하는 레거시 애플리케이션에 종종 좋은 선택이에요.none— 컨테이너를 호스트와 다른 컨테이너로부터 완전히 격리해요. 다만none은 스웜 서비스에는 사용할 수 없어요.- 네트워크 플러그인(Network plugins) — 기본 드라이버 외에 서드파티 네트워크 플러그인을 설치·사용할 수도 있어요.
드라이버별 요약
- 기본 bridge 네트워크는 특별한 네트워킹 능력이 필요 없는 컨테이너를 실행할 때 좋아요.
- 사용자 정의 bridge 네트워크는 같은 도커 호스트의 컨테이너들이 서로 통신하게 해줘요. 보통 공통 프로젝트나 컴포넌트에 속한 여러 컨테이너를 위한 격리된 네트워크를 정의해요.
- host 네트워크는 호스트의 네트워크를 컨테이너와 공유해요. 이 드라이버를 쓰면 컨테이너의 네트워크가 호스트로부터 격리되지 않아요.
- overlay 네트워크는 서로 다른 호스트에서 실행되는 컨테이너가 통신해야 할 때 가장 적합해요.
- ipvlan은 macvlan과 비슷하지만, 컨테이너에 고유 MAC 주소를 부여하지 않아요. 네트워크 인터페이스나 포트에 부여할 수 있는 MAC 주소 수에 제한이 있을 때 ipvlan을 고려해보세요.
- 서드파티 네트워크 플러그인은 도커를 특수한 네트워크 스택과 통합할 수 있게 해줘요.
각 드라이버 페이지에는 상세한 설명, 설정 옵션, 실습 예제가 있으니 필요한 드라이버를 골라 자세히 살펴보면 돼요.