CodeGym /행동 /Docker SELF /Docker의 주요 네트워크 드라이버

Docker의 주요 네트워크 드라이버

Docker SELF
레벨 17 , 레슨 0
사용 가능

1.1 Bridge 네트워크 드라이버

Docker 네트워크 드라이버는 컨테이너가 서로 및 외부 네트워크와 상호 작용할 수 있도록 해줘. Docker는 다양한 네트워크 드라이버를 제공하며, 각각은 고유한 특징과 특정 사용 시나리오에 적합해. 이 강의에서는 네 가지 주요 네트워크 드라이버인 bridge, host, none, overlay를 다룰 거야.

Bridge 네트워크 드라이버는 Docker의 기본 네트워크 드라이버야. 이 드라이버는 컨테이너가 서로 통신할 수 있는 개인 내부 네트워크를 생성해. 이 네트워크는 호스트의 외부 네트워크로부터 격리되어 있어.

특징:

  • bridge 네트워크에 연결된 컨테이너는 IP 주소를 통해 서로 상호작용할 수 있어.
  • 외부 네트워크는 bridge 네트워크의 컨테이너와 직접 상호작용할 수 없어, 포트 포워딩을 설정하지 않는 한.
  • 로컬 개발 및 테스트 시나리오에 사용하기 쉬워.

사용 예:

네트워크를 지정하지 않고 컨테이너를 생성하면 자동으로 bridge 네트워크에 연결돼.

터미널

docker run -d --name my_container nginx 

포트 포워딩을 설정하려면 -p 플래그를 사용해.

터미널

docker run -d -p 8080:80 --name my_container nginx 

1.2 네트워크 드라이버 Host

네트워크 드라이버 host는 컨테이너가 호스트 머신의 네트워크 스택을 직접 사용하게 해줘. 이 말은 컨테이너가 호스트와 동일한 IP 주소를 가지며, 호스트의 모든 네트워크 인터페이스를 사용할 수 있다는 뜻이야.

특징:

  • host 네트워크 드라이버를 사용하는 컨테이너는 네트워크 가상화에 대한 오버헤드가 줄어들어 더 빠르게 동작해.
  • 컨테이너는 호스트와 동일한 네트워크 인터페이스에 접근할 수 있어서 보안 위험이 커질 수 있어.
  • 네트워크 성능이 중요한 시나리오나 특정 네트워크 구성이 필요한 경우에 적합해.

사용 예제:

Terminal

docker run -d --network host --name my_container nginx 

1.3 네트워크 드라이버 None

네트워크 드라이버 none는 컨테이너의 모든 네트워크 기능을 비활성화해. 네트워크 none에 연결된 컨테이너는 네트워크 인터페이스가 없어서 다른 컨테이너나 네트워크와 완전히 격리돼.

특징:

  • 컨테이너를 모든 네트워크에서 완전히 격리시킴.
  • 네트워크가 필요 없는 작업(네트워크와 무관한 작업 수행 등)에 유용함.

사용 예제:

Terminal

docker run -d --network none --name my_container busybox 

1.4 네트워크 드라이버 Overlay

네트워크 드라이버 overlay는 여러 Docker 호스트를 아우르는 분산 네트워크를 생성하는 데 사용돼. 이 드라이버는 Docker Swarm이나 Kubernetes에서 서로 다른 호스트에 있는 컨테이너들 간의 네트워크 상호작용을 보장하기 위해 자주 사용돼.

특징:

  • 다른 호스트에 있는 컨테이너들 간의 통신을 보장해.
  • Docker Swarm 같은 클러스터링 설정이 필요해.
  • 기존 네트워크 위에 가상 네트워크를 생성하여 높은 수준의 격리와 보안을 제공해.

사용 예시:

overlay 드라이버를 사용하려면 먼저 Docker Swarm 클러스터를 생성해야 해.

1. Docker Swarm 초기화:

Terminal

docker swarm init

2. overlay 네트워크 생성:

Terminal

docker network create -d overlay my_overlay_network 

3. overlay 네트워크에 연결된 컨테이너 실행:

Terminal

docker service create --name my_service --network my_overlay_network nginx 

1.5 네트워크 드라이버 비교

다양한 네트워크 드라이버 비교

네트워크 드라이버 격리 성능 적용성 특징
bridge 높음 보통 로컬 네트워크 기본적으로 격리된 네트워크
host 낮음 높음 성능 호스트와 공유된 네트워크 스택
none 완전 최고 격리 네트워크로부터 완전한 격리
overlay 높음 높음 분산 네트워크 다른 호스트의 컨테이너 간 통신

네트워크 드라이버 사용

  • Bridge: 컨테이너 간 상호작용이 필요하지만 외부 네트워크로부터 격리되어야 하는 로컬 앱 및 테스트에서 사용하세요.
  • Host: 네트워크 성능이 높거나 네트워크 격리가 우선되지 않는 특수 네트워크 구성의 앱에서 사용하세요.
  • None: 네트워크 상호작용이 필요 없는 완전히 격리된 컨테이너에 사용하세요.
  • Overlay: 클러스터에서 작동하는 분산 앱에서 다른 호스트의 컨테이너 간 통신이 필요한 경우 사용하세요.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION