개발/Docker

Docker - Network

잇(IT) 2022. 5. 30. 17:09
728x90

목차

1. Docker Network

1.1 Bridge
1.2 Host
1.3 Container

2. Docker Network 생성 및 적용

2.1 컨테이너 생성시 네트워크 부여하기
2.2 네트워크 직접 설정하여 생성


1. Docker Network

 

1.1 Bridge

 

- docker의 기본 network 방식은 bridge이다.

- 컨테이너를 생성하게 되면, 각 컨테이너 마다 고유한 namespace 영역이 하나씩 생성되먀, 이때 docker0 bridge container의 인터페이스들이 하나씩 바인딩 된다.

 

1.2 Host

 

- host 방식으로 컨테이너를 생성하면, 컨테이너가 독립적인 네트워크 영역을 갖지 않고 host와 네트워크를 함께 사용하게 된다.

--net=host 옵션을 사용한다.

 

1.3 Container

 

- container는 기존에 있는 다른 컨테이너의 network 환경을 공유하게 된다.

--net=container:[컨테이너ID] 옵션을 사용한다.


2. Docker Network 생성 및 적용

 

network 목록 확인

- Network 생성시 아무런 옵션을 주지 않으면 기본적으로 bridge 사용한다.

- 방화멱 설정을 하지 않아도 알아서 설정이 되어 있다.

 

network 생성

- test1이라는 network를 생성한다.

- 별도의 옵션을 주지 않으면 birdge를 사용한 네트워크를 생성한다.

 

- test1 네트워크 정보를 살펴보게 되면 driver 정보는 bridge로 되어있고, subnet 및 gateway도 마찬가지로 자동으로 구성되는 것을 볼 수 있다.


2.1 컨테이너 생성시 네트워크 부여하기

 

- 현재 network test1, test2가 생성되어 있다.

 

기본 컨테이서 생성
test1 네트워크를 부여한 컨테이너 생성

- test1 네트워크를 부여한 c2 컨테이너의 네트워크 정보를 살펴보게 되면 test1의 네트워크 대역에 DHCP를 통한 자동으로 IP가 부여된다.

 

test2 네트워크를 부여한 컨테이너 생성

- test2 네트워크를 부여한 c3 컨테이너의 네트워크 정보를 살펴보게 되면 test1의 네트워크 대역에 DHCP를 통한 자동으로 IP가 부여된다.

 

c2 컨테이너에 진입 후 net-tools 패키지 설치

- c2 컨테이너에 진입하여 net-tools 패키지를 설치한 다음 ifconfig 명령어를 해당 컨테이너의 네트워크 카드 및 네트워크의 자세한 정보들을 확인 할 수 있다.


2.2 네트워크 직접 설정하여 생성

 

- docker에서 network 생성시 해당 대역 및 gateway를 지정하여 생성할 수 있다.

 

subnet 및 gateway 직접 지정

- network를 직접 생성할 수 있다.

- subnet, gateway를 직접 지정할 수 있고 새롭게 만들어지는 네트워크는 별칭을 붙여 생성한다.

 

네트워크 정보 확인

- 새롭게 지정하여 생성한 n1 네트워크 정보를 보게되면 위에서 설정한 정보들이 담겨있는 것을 볼 수 있다.

 

- 새롭게 생성한 n1 network를 지정하여 컨테이너를 생성한다.

 

- 해당 컨테이너의 gateway는 192.168.100.254로 n1 네트워크 생성시 지정된 gateway가 지정된 것을 볼 수 있다.

- IP Address는 192.168.100.0/24 대역에 DHCP를 통해 순차적으로 IP Address가 부여된다.


728x90