티스토리 뷰

tools/docker

도커 네트워크

네스사 2024. 2. 5. 20:30

 

도커 네트워크란?


도커는 외부와 격리된 컨테이너를 생성하는 것이 가능하다.

그러나 외부와 격리된다면 통신이 불가능해져서 필요한 라이브러리나 파일을 설치하지 못한다.

이런 문제를 방지하기 위해, 기본적으로 도커는 호스트를 통해 외부와 통신을 가능하게하며 같은 그룹의 컨테이너끼리 서로 통신도 가능하게 한다.

이는 vm의 NAT 네트워크와 유사한데, 이런 컨테이너 간의 통신을 관리하고 격리하기 위한 기능을 제공하는  논리적 네트워크를 도커 네트워크라 한다.

 

이를 통해, 도커는 컨테이너간 통신을 쉽게 설정하고 관리할 수 있도록 도와준다.

 

 

 

도커 네트워크 구조 


도커는 컨테이너에 내부 IP를 순차적으로 할당하지만 이는 도커가 설치된 호스트(내부망)에서만 사용할 수 있는 IP이다.

따라서, 컨테이너가 외부와 연결되기 위해서는 추가적인 설정이 필요한데, 이 역할을 하는 것이 veth이다.

 

위 그림에서 알수 있듯이 도커 엔진은 컨테이너가 생성될 때 자동으로 이 veth라는 네트워크 터페이스를 생성한다.

veth 인터페이스는 각 컨테이너의 호스트 eth0, eth1 등과 연결되어 있다.

그리고 외부와 연결이 되는 docker0 브리지는 각 veth 인터페이스와 바인딩되어 호스트의 네트워크와 컨테이너의 네트워크를 연결하는 역할을 한다.

이렇게 도커는 veth 인터페이스와 docker0 브리지를 통해 각 컨테이너에 외부와의 네트워크를 제공하고, 컨테이너끼리 통신도 docker0 브리지를 통해 진행된다.

 

컨테이너를 생성시 기본적으로 docker0 브리지를 사용할 수 있지만, 사용자의 선택에 따라 여러 네트워크 드라이브를 사용할 수 있다.

 

 

 

도커 네트워크 관련 명령어 


따로 설정하지 않아도, 컨테이너 생성시 기본적인 네트워크를 구성할 수 있다.

그러나 사용자가 원한다면, 특정 그룹별로 네트워크를 만들어, 해당 그룹의 컨테이너끼리만 통신할 수 있게 할 수 있다.

 

다음은 그럼 네트워크 그룹을 생성,관리하기 위한 명령들이다.  

 

 

 

 docker network 목록 조회

docker network ls

 

 

 docker network 상세 조회

docker network inspect [도커 네트워크 ID or 도커 네트워크 이름]

 

 

 

docker network 생성

docker network create [만들 네트워크 이름]

#네트워크 드라이버  지정
docker network create --driver = [네트워크 드라이버 이름][만들 드라이버 이름]

 

컨테이너 실행시 network 지정

docker run -d ... --network=[네트워크 이름][컨테이너 이름]

 

이미 실행중인 컨테이너에 network 지정

docker network connect [네트워크 이름][컨테이너 이름]

 

'tools > docker' 카테고리의 다른 글

docker 명령어  (1) 2024.01.31
docker 개요  (1) 2024.01.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함