개요
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를 특수 네트워크 스택과 통합 할 수 있습니다.