Docker 네트워크 드라이버 플러그인
Docker 네트워크 드라이버 플러그인 (Docker network driver plugins)
이 문서는 Docker Engine에서 일반적으로 사용 가능한 Docker Engine 네트워크 드라이버 플러그인을 설명해요. Docker Engine이 관리하는 플러그인에 대한 정보는 Docker Engine 플러그인 시스템을 참고하세요.
Docker Engine 네트워크 플러그인은 VXLAN, IPVLAN, MACVLAN 또는 완전히 다른 것 같은 광범위한 네트워킹 기술을 지원하도록 Engine 배포를 확장할 수 있게 해줘요. 네트워크 드라이버 플러그인은 LibNetwork 프로젝트를 통해 지원돼요. 각 플러그인은 Engine과 플러그인 인프라를 공유하는 LibNetwork용 "원격 드라이버(remote driver)"로 구현돼요. 효과적으로 네트워크 드라이버 플러그인은 다른 플러그인과 같은 방식으로 활성화되고, 같은 종류의 프로토콜을 사용해요.
출처: 문서
본문
네트워크 플러그인과 Swarm 모드 (Network plugins and Swarm mode)
레거시 플러그인은 Swarm 모드에서 동작하지 않아요. 하지만 v2 플러그인 시스템을 사용해 작성된 플러그인은 각 Swarm 워커 노드에 설치되어 있기만 하면 Swarm 모드에서 동작해요.
네트워크 드라이버 플러그인 사용 (Use network driver plugins)
네트워크 드라이버 플러그인의 설치·실행 방법은 특정 플러그인에 따라 달라져요. 따라서 플러그인 개발자에게 얻은 지침에 따라 플러그인을 설치해야 해요.
한번 실행되면 네트워크 드라이버 플러그인은 내장 네트워크 드라이버처럼 사용돼요: 네트워크 관련 Docker 명령에서 드라이버로 언급함으로써요. 예를 들어,
$ docker network create --driver weave mynet
일부 네트워크 드라이버 플러그인은 plugins에 나열돼 있어요.
mynet 네트워크는 이제 weave가 소유하므로, 그 네트워크를 참조하는 후속 명령은 플러그인으로 전송돼요.
$ docker run --network=mynet busybox top
네트워크 플러그인 찾기 (Find network plugins)
네트워크 플러그인은 타사가 작성하고, 그 타사가 Docker Hub 또는 타사 사이트에 게시해요.
네트워크 플러그인 작성 (Write a network plugin)
네트워크 플러그인은 Docker 플러그인 API와 네트워크 플러그인 프로토콜을 구현해요.
네트워크 플러그인 프로토콜 (Network plugin protocol)
네트워크 드라이버 프로토콜은 플러그인 활성화 호출 외에도 libnetwork의 일부로 문서화돼요: https://github.com/moby/moby/blob/master/daemon/libnetwork/docs/remote.md.