1. 개요

<Docker 가상 환경 구축 입문>의 <Chapter 6. Docker 컨테이너 사이의 네트워크를 구축하자>를 읽고 정리한 내용으로,

이번 문서의 내용은 Docker 컨테이너의 네트워크에 대한 소개입니다.

 

2. 사용자 정의 브릿지 네트워크

  • 브릿지 네트워크란, 단일 호스트 내에서 구성되는 네트워크로 비교적 소규모 네트워크 구성 시에 많이 사용
  • 네트워크를 지정하지 않고 컨테이너를 기동할 경우 디폴트 브릿지 네트워크에 접속됨
  • 디폴트로 컨테이너에 할당되는 브릿지 네트워크와 별도로 사용자 정의 브릿지 네트워크를 구성할 수 있음 
    $ docker network create [network 이름]
    $ docker network connect [network 이름] [컨테이너 이름]
  • Docker Network 관련 확인 커맨드
    $ docker network ls #네트워크 목록 표시 
    $ docker network inspect [network 이름] #특정 네트워크의 상세 설명 표시

 

3. None Network와 Host Network

  • None Network: 네트워크 인터페이스를 가지지 않는 상태로 두고 싶을 경우 사용하며 주로 검증 목적으로 사용
  • Host Network: Docker Host와 동일한 네트워크 인터페이스를 컨테이너에서 사용하고 싶을 경우 사용
  • Host Network를 사용하면 호스트 가상 머신과 같은 네트워크 인터페이스를 가지게 되므로 포트포워딩할 필요없이 바로 접근 가능
  • None network는 네트워크 드라이버가 'null'로 지정된 상태
  • None network 연결을 위해서는 다음과 같은 명령을 수행해야 함
    (컨테이너 명: con1, None network 명: none이라고 가정)
    $ docker network disconnect bridge con1 #현재 연결되어있는 네트워크 연결 중단
    $ docker network connect none con1 #새롭게 연결할 none network와 연결

 

4. Overlay Network

  • 여러개의 호스트를 넘나드는 네트워크를 구축할 때 overlay network 사용
  • Overlay Network에는 호스트의 Docker 정보를 보존하기 위한 Key value store 서버가 필요 (예: Consul, Etcd, Zookeeper 등)
  • Overlay Network를 사용하는 Docker Host에서는 다음 포트가 사용됨
    TCP 2377 포트 클러스터 관리 통신용
    TCP/UDP 7946 포트 노드 간 통신용
    UDP 4789 포트 오버레이 네트워크 트래픽 용