korean IT student

Docker - 네트워크 사용법 본문

Infra/Docker

Docker - 네트워크 사용법

현창이 2021. 7. 15. 16:20

Docker 컨테이너(container)는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와의 통신이 불가능합니다. 하지만 여러 개의 컨테이너를 하나의 Docker 네트워크(network)에 연결시키면 서로 통신이 가능해집니다.

 

네트워크 종류

- Bridge network : 하나의 호스트 컴퓨터 내에서 여러 컨테이너들이 서로 소통

- Host network : 컨테이너를 호스트 컴퓨터와 동일한 네트워크에서 컨테이너를 돌리기 위해서 사용

- None network : 네트워크를 사용하지 않음, lo(localhost) 네트워크만 사용, 외부와 단절

- Docker network 조회 : docker network ls

 

네트워크 생성(bridge)

- Docker network 생성 : docker network create 네트워크명

- Docker network 생성 시 gateway 및 subnet도 수정할 수 있다.

    : docker network create --gateway (할당할 ip) --subnet (할당할 ip)  네트워크명

    : docker network create --gateway 172.18.0.1--subnet 172.18.0.0/16 msa-network (블로그에 사용된 네트워크 )

 

- -d 옵션을 사용하지 않으면 default인 bridge 네트워크로 생성됩니다.

 

네트워크 상세보기

- Docker network 상세보기 : docker network inspect 네트워크명 

 

- 생성한 네트워크 subnet은 172.18.0.0/16을 갖기 때문에 컨테이너가 생성되면 대역 안에서 IP를 할당받게 된다.             (예: 172.18.0.2, 172.18.0.3)

- 컨테이너를 생성하면 대역의 IP를 순차적으로 할당받는다.

- 이 IP는 컨테이너가 재시작할 때마다 변경될 수 있다.

 

네트워크에 컨테이너 연결

- 컨테이너를 실행할 때 --network를 사용하여야 한다. 없을 시 default bridge 이름으로 되어있는 네트워크 사용

- 아래와 같이 두 개의 컨테이너를 실행하였다.

- docker run --network msa-network --name discovery-service hn123123/discovery-service

docker run --network msa-network --name user-service hn123123/user-service

네트워크 삭제

- docker network 삭제 : docker network rm 네트워크 네임

 

Comments