hanker

Docker - Docker Network 란? 본문

SERVER/DOCKER

Docker - Docker Network 란?

hanker 2024. 11. 29. 18:31
반응형

Docker Network는 Docker 컨테이너들 간의 통신을 가능하게 하는 가상 네트워크이다.

이를 통해 컨테이너들이 서로 데이터를 주고받을 수 있으며, 외부 네트워크와의 통신도 가능하다.

Docker는 기본적으로 컨테이너를 격리된 상태에서 실행하는데, 네트워크를 구성하여 컨테이너들 간에 필요한 연결을 설정할 수 있다.

 

 


Docker Network의 주요 개념

 

1. Bridge Network

- Docker에서 기본적으로 제공하는 네트워크 유형이다.

- 동일한 호스트에 있는 컨테이너들끼리 격리된 네트워크 환경을 제공하며, 기본적으로 docker run 명령어로 컨테이너를 생성하면 bridge 네트워크에 연결된다.

- 컨테이너 간 통신이 필요한 상황에서 주로 사용된다.

 

2. Host Network

- 컨테이너가 호스트의 네트워크 스택을 직접 사용한다.

- 컨테이너는 별도의 가상 네트워크 인터페이스를 가지지 않으며, 대신 호스트의 네트워크와 동일한 환경에서 동작한다.

- 성능적인 이점이 있지만 보안적인 측면에서 격리 수준이 낮아질 수 있다.

 

3. Overlay Network:

- Docker Swarm이나 Kubernetes 같은 오케스트레이션 툴에서 여러 호스트 간의 컨테이너 네트워킹을 지원하기 위해 사용된다.

- 멀티 호스트 환경에서 컨테이너 간 통신을 가능하게 해준다.

- VPN과 같은 개념으로 여러 네트워크 상에서 통신이 가능하도록 한다.

 

4. None Network:

- 컨테이너에 네트워크 인터페이스를 연결하지 않는다.

- 이 모드를 사용하면 컨테이너는 네트워크 기능 없이 동작하게 된다.

 

5. Custom Network:

- 사용자 정의 네트워크를 생성하여 컨테이너가 서로 간에 쉽게 통신할 수 있도록 설정할 수 있다.

- 사용자 정의 네트워크를 사용하면 DNS를 통해 컨테이너 이름으로 직접 통신할 수 있어 좀 더 관리하기 용이하다.

 


Docker Network의 종류

 

1.  Bridge Network

- 동일한 호스트 내에서 컨테이너 간 통신을 가능하게 하며, 주로 단일 호스트에서의 애플리케이션 실행에 적합하다.

 

2. Host Network

- 컨테이너가 호스트와 동일한 네트워크를 사용하여, 네트워크 성능 최적화가 필요한 경우 사용된다.

 

3.Overlay Network

- 멀티 호스트 환경에서 사용되며, 여러 Docker 데몬이 클러스터 내에서 컨테이너 간 통신을 지원한다. 주로 Docker Swarm 또는 Kubernetes에서 사용된다.

 

4. Macvlan Network

- 컨테이너에 실제 물리적 네트워크 인터페이스처럼 동작하는 IP를 할당한다.

- 컨테이너가 물리적 네트워크의 일부처럼 동작해야 할 때 사용되며, 일반적으로 기존 네트워크에 직접 연결이 필요할 때 사용된다.

 

5. None Network

- 컨테이너에 네트워크 인터페이스를 연결하지 않으며, 네트워크가 필요 없는 작업을 수행할 때 사용된다.


Docker Network의 주요 명령어 정리
명령어 설명
docker network ls 네트워크 조회
docker network inspect [네트워크 명] 특정 네트워크 상세조회
docker network create [네트워크 명] 네트워크 생성
docker network connect [네트워크 명] [컨테이너 명] 특정 네트워크에 컨테이너를 연결
docker network disconnect [네트워크 명] [컨테이너 명] 특정 네트워크에서 컨테이너를 분리
docker network rm [네트워크 명] 네트워크 삭제

 

각 명령어의 실행결과를 알아보자

네트워크 조회

 

네트워크 생성

 

네트워크 상세조회
container에 network 연결 후 네트워크 상세조회

 


Docker Network의 장점

 

- 컨테이너 간 통신: 컨테이너 간의 데이터 통신이 쉽고 편리하게 이루어지도록 지원한다.

- 보안: 네트워크를 분리하여 컨테이너의 보안 수준을 높일 수 있다.

- 유연성: 필요에 따라 네트워크 구성을 커스터마이징하여 컨테이너 간의 관계를 유연하게 정의할 수 있다.

 

 

Docker Network는 컨테이너를 효과적으로 격리하고 관리하며, 필요한 경우 컨테이너 간의 통신을 지원하는 핵심 요소이다.
다양한 네트워크 드라이버를 통해 애플리케이션의 구조와 요구사항에 맞는 네트워크 구성을 구현할 수 있다.
반응형