본문 바로가기
Docker

도커 인 액션 5장

by xogns93 2024. 12. 4.

Docker Network

 

1. Docker 네트워크 개요                   Docker 네트워크는 컨테이너, 볼륨, 이미지처럼 생성, 나열, 제거가 가능한 일급 객체.

  • 기본 제공 네트워크:
    • Bridge: 기본 네트워크. 컨테이너 간 통신과 컨테이너 이름 기반 해석 지원.
    • Host: 컨테이너가 호스트의 네트워크 스택을 직접 공유.
    • None: 네트워크 격리가 필요할 때 사용. 외부 네트워크와 통신 불가능.

2. 네트워크 종류 및 특징

  • Bridge Network:
    • 컨테이너 간 네트워크 통신 제공.
    • 기본 네트워크, 격리된 환경에서 적합.
    • 방화벽 및 접근 제어 기능 없음.
  • Host Network:
    • 컨테이너가 호스트 네트워크를 직접 사용.
    • 성능 최적화에 유리하나, 보안 격리 없음.
  • None Network:
    • 컨테이너를 네트워크와 완전히 격리.
    • 루프백 인터페이스만 사용 가능.

3. 컨테이너 간 통신

  • Bridge 네트워크에서 컨테이너는 내부 IP 주소로 통신.
  • 사용자 정의 네트워크를 생성하여 서브넷, IP 범위를 설정 가능:
    docker network create \
      --driver bridge \
      --subnet 10.0.0.0/24 \
      custom-network

4. 포트 매핑과 트래픽 관리

  • 외부에서 컨테이너로 트래픽 전달 시 NodePort Publishing 사용:
    docker run -d -p 8080:80 nginx
    • 호스트의 8080 포트를 컨테이너의 80 포트로 매핑.

5. DNS 설정

  • DNS 서버, 검색 도메인 등을 사용자 정의 가능:
    docker run --rm \
      --dns 8.8.8.8 \
      --dns-search example.com \
      alpine nslookup test.example.com
  • /etc/hosts 파일을 수정하여 IP-호스트 매핑 가능:
    docker run --rm \
      --add-host myhost:127.0.0.1 \
      alpine cat /etc/hosts

6. 네트워크 관리 주의사항

  • 컨테이너 간 네트워크 통신은 보안적으로 제약 없음.
    • 애플리케이션 레벨에서 접근 제어 메커니즘 구현 필요.
  • 사용자 정의 방화벽 설정은 Docker 네트워크의 기본 제공 기능이 아님.

7. 멀티호스트 네트워크

  • 여러 호스트 간 컨테이너 연결 필요 시 오버레이 네트워크 사용:
    • 스웜 모드 활성화 필요.
  • Linux 환경에서 Macvlan 네트워크를 사용하여 호스트의 네트워크 주소를 직접 컨테이너에 할당 가능.

8. 사용 사례에 따른 선택

  • Bridge: 단일 호스트에서의 기본적인 컨테이너 통신.
  • Host: 성능이 중요한 로컬 네트워크 통합 환경.
  • None: 격리된 작업이 필요한 테스트 또는 보안 민감 환경.
  • Overlay: 다중 호스트 또는 클러스터 기반 서비스.

9. 외부 네트워크 통합

  • None 네트워크를 사용해 네트워크 관리를 외부 도구에 위임 가능.
  • Kubernetes 및 타사 네트워크 관리 도구와의 통합 필요 시 활용.

 

'Docker' 카테고리의 다른 글

쿠버네티스(Kubernetes)  (0) 2024.12.05
도커 인 액션 6장  (0) 2024.12.05
볼륨(Volume)  (0) 2024.12.04
도커 인 액션 4장  (0) 2024.12.04
도커 인 액션 2장  (0) 2024.12.04