개요
Docker 컨테이너 및 서비스가 강력한 이유 중 하나는이를 함께 연결하거나 Docker 이외의 작업 부하에 연결할 수 있기 때문입니다. Docker 컨테이너 및 서비스는 Docker에 배포되었거나 피어가 Docker 워크로드인지 여부를 알 필요조차 없습니다. Docker 호스트가 Linux, Windows 또는이 둘을 혼합하여 실행하는지에 관계없이 Docker를 사용하여 플랫폼에 상관없이 호스트를 관리 할 수 있습니다.
이 주제에서는 몇 가지 기본 Docker 네트워킹 개념을 정의하고 이러한 기능을 최대한 활용하기 위해 애플리케이션을 설계 및 배치 할 수 있도록 준비합니다.
이 내용의 대부분은 모든 Docker 설치에 적용됩니다. 그러나 일부 고급 기능은 Docker EE 고객 만 사용할 수 있습니다.
이 주제의 범위
이 주제에서는 Docker 네트워크 작동 방식에 대한 OS 별 세부 정보를 다루지 않으므로 Docker가 Linux에서 iptables 규칙을 조작하는 방법 또는 Windows 서버에서 라우팅 규칙을 조작하는 방법에 대한 정보를 찾지 못하고 Docker 방법에 대한 자세한 정보를 찾을 수 없습니다 패킷을 형성하고 캡슐화하거나 암호화를 처리합니다. 훨씬 자세한 기술 정보는 Docker 및 iptables 및 Docker 참조 아키텍처 : 확장 가능한 휴대용 Docker 컨테이너 네트워크 설계를 참조하십시오.
또한이 주제에서는 Docker 네트워크를 작성, 관리 및 사용하는 방법에 대한 학습서를 제공하지 않습니다. 각 섹션에는 관련 자습서 및 명령 참조에 대한 링크가 포함되어 있습니다.
Network driver
Docker의 네트워킹 하위 시스템은 드라이버를 사용하여 플러그 가능합니다. 기본적으로 여러 드라이버가 있으며 핵심 네트워킹 기능을 제공합니다.
- bridge : 기본 네트워크 드라이버. 드라이버를 지정하지 않으면 생성중인 네트워크 유형입니다. 브리지 네트워크는 일반적으로 응용 프로그램이 통신해야하는 독립 실행 형 컨테이너에서 실행될 때 사용됩니다. 브리지 네트워크를 참조하십시오.
- host : 독립형 컨테이너의 경우 컨테이너와 Docker 호스트 사이의 네트워크 격리를 제거하고 호스트의 네트워킹을 직접 사용하십시오. host는 Docker 17.06 이상에서 swarm 서비스에만 사용할 수 있습니다. 호스트 네트워크 사용을 참조하십시오.
- overlay : 오버레이 네트워크는 여러 Docker 데몬을 함께 연결하고 스웜 서비스가 서로 통신 할 수 있도록합니다. 오버레이 네트워크를 사용하여 swarm 서비스와 독립형 컨테이너 간 또는 다른 Docker 데몬의 두 독립형 컨테이너 간 통신을 용이하게 할 수 있습니다. 이 전략을 사용하면 이러한 컨테이너간에 OS 수준 라우팅을 수행 할 필요가 없습니다. 오버레이 네트워크를 참조하십시오.
- macvlan : Macvlan 네트워크를 사용하면 컨테이너에 MAC 주소를 할당하여 네트워크에서 물리적 장치로 표시 할 수 있습니다. Docker 데몬은 MAC 주소로 트래픽을 컨테이너로 라우팅합니다. Docker 호스트의 네트워크 스택을 통해 라우팅되는 대신 물리적 네트워크에 직접 연결될 것으로 예상되는 레거시 응용 프로그램을 처리 할 때 macvlan 드라이버를 사용하는 것이 가장 좋습니다. Macvlan 네트워크를 참조하십시오.
- none : 이 컨테이너의 경우 모든 네트워킹을 비활성화하십시오. 일반적으로 사용자 지정 네트워크 드라이버와 함께 사용됩니다. 스웜 서비스에는 사용할 수 없습니다. 컨테이너 네트워킹 비활성화를 참조하십시오.
- Network plugins: Docker와 함께 타사 네트워크 플러그인을 설치하고 사용할 수 있습니다. 이 플러그인은 Docker Hub 또는 타사 공급 업체에서 제공합니다. 특정 네트워크 플러그인 설치 및 사용에 대해서는 공급 업체의 설명서를 참조하십시오.
Network driver 요약
User-defined bridge networks는 동일한 Docker 호스트에서 통신하기 위해 여러 컨테이너가 필요한 경우 가장 좋습니다.Host networks는 네트워크 스택을 Docker 호스트와 격리해서는 안되지만 컨테이너의 다른 측면을 격리하려는 경우에 가장 좋습니다.Overlay networks는 서로 다른 Docker 호스트에서 실행중인 컨테이너가 통신해야하거나 스웜 서비스를 사용하여 여러 응용 프로그램이 함께 작동 할 때 가장 좋습니다.Macvlan networks는 VM 설정에서 마이그레이션하거나 컨테이너가 각각 고유 한 MAC 주소를 가진 네트워크의 실제 호스트처럼 보이도록 할 때 가장 좋습니다.Third-party network plugins을 사용하면 Docker를 특수 네트워크 스택과 통합 할 수 있습니다.