[Docker] 4.도커 네트워크

어려운 내용이 들어가면 내가 이해하기 어려우니까 도커에 대한 간단한 글

Docker Network

컨테이너는 내부 IP를 순차적으로 할당을 하며, 컨테이너가 재시작 될 때마다 변경 될 수 있다. 외부와 연결해야 하는 경우 호스트에 veth(virtual eth)라는 네트워크 인터페이스를 생성하고 컨테이너의 eth와 연결이 된다.

veth 인터페이스는 사용자가 직접 생성할 필요 없이 도커엔진에 의해 자동으로 생성되고 docker()라는 브릿지가 veth 인터페이스와 바인딩 되어 호스트의 eth인터페이스와 연결 해 준다.

docker-network

네트워크 드라이브

bridge

사용자가 정의한 브릿지를 생성해 각 컨테이너에 연결하는 네트워크 구조

컨테이너는 연결 된 브릿지를 통해 외부와 통신

host

호스트의 네트워크 환경 사용

container

overlay

none

사용하기

네트워크 생성

$ docker network create --driver=bridge -subnet=172.19.0.0/16 [네트워크]

도커 내부에서 172.19.0 대역을 사용할 수 있는 네트워크 생성

네트워크 상세 보기

$ docker network inspect [네트워크]

네트워크 사용

$ docker run -it --name my_container --net [네트워크]

docker exec -it [컨테이너] route로 패킷이 게이트웨이인 docker()로 나가는걸 확인할 수 있다.