2016년 8월 11일 목요일

오버레이 네트워크? Docker networking?

Docker Networking

안녕하세요. kin입니다. 

오늘은 Docker가 쓸만해진(?)게 만들어준, 네트워크 feature에 대해 살짝 후려쳐 보죠.  자세한 사항은 Docker network doc 을 확인하세요. 



  • 1.9 이전에는 오버레이 네트워크가 지원되지 않아 Proxy 사용해야 했음
  • Docker 설치하면 자동으로 3개의 네트워크가 추가됨 (docker network ls command 로 화인)
  • 컨테이너는 여러 개의 네트워크에 추가될수 있음
  • 컨테이너는 같은 네트워크에 있어야 서로 통신할 수 있음
  • Network type
    • Bridge network
      • --net=bridge
      • 디폴트로 docker 생성하는 브릿지 네트워크, docker0 라는 이름을 가짐
      • Docker 엔진은 subnet gateway 네트워크에 생성한다.
      • 옵션을 주지 않으면 docker 데몬이 컨네이터를 이 네트워크를 연결함
      • private 범위에서 사용하지 않는 IP를 자동으로 선택해서 docker0 에 할당
      • EXPOSE option
        • Exposing port - EXPOSE 옵션은 컨네이너끼리 IP 기반으로 커뮤니케이션을 허락. (외부 통신 아님)
      • LINK option
        • --link option - 컨네이너안에 환경변수를 이용하여 서로를 이름으로만으로도 찾게 도와준다.
      • External port option
        •  -p 옵션을 통해 호스트(external network)와 이름 기반으로 커뮤니케이션 가능. 다커가 iptable을 생성해서 브릿지와 external 을 연결
    • Overlay network  (multiple-host networking)

      • built-in VXLAN 기반 네트워크 드라이버 사용.
      • 오버레이 네트워크는 Key-value store가 요구 되어짐
      • libkvkvstore 인터페이스 서포트- 구현체는 consul. Etcd, zookeeper
      • 각각의 호스트에는 docker 엔진이 실행되어야 함
      • Docker daemon에 옵션으로 서비스 디스커버리(Kvstore)의 주소를 설정해야함
    • Host network
      • --net=host
      • 컨네이너가 호스트 머신과 네트워크 네임스페이스를 공유

댓글 없음:

댓글 쓰기