[Docker] 도커 네트워크 기능(브리지, 호스트, 논, 컨테이너)

sonnie
lucky-sonnie
Published in
2 min readJan 1, 2021

컨테이너를 생성하면 기본적으로 docker0 브리지를 통해 외부와 통신할 수 있는 환경을 사용할 수 있지만 사용자의 선택에 따라 여러 네트워크 드라이버를 쓸 수도 있습니다. 도커가 자체적으로 제공하는 네트워크 드라이버로는 브리지, 호스트, 논, 컨테이너, 오버레이가 있습니다. 이번에는 도커 자체만으로 손쉽게 쓸 수 있는 브리지, 호스트, 논, 컨테이너를 설명하겠습니다.

브리지 네트워크는 컨테이너를 생성할 때 자동으로 연결되는 docker0 브리지를 활용하도록 설정돼 있습니다. 이 네트워크는 172.17.0.x IP 대역을 컨테이너에 순차적으로 할당합니다.

브리지(Bridge) 네트워크

브리지 네트워크는 docker0이 아닌 사용자 정의 브리지를 새로 생성해 각 컨테이너에 연결하는 네트워크 구조입니다. 컨테이너는 연결된 브리지를 통해 외부와 통신할 수 있습니다.

호스트(host) 네트워크

네트워크를 호스트로 설정하면 호스트의 네트워크 환경을 그대로 쓸 수 있습니다. 위의 브리지 드라이버 네트워크와 달리 호스트 드라이버의 네트워크는 별도로 생성할 필요 없이 기존의 host 라는 이름의 네트워크를 사용합니다.

컨테이너의 네트워크를 호스트 모드로 설정하면 컨테이너 내부의 애플리케이션을 별도의 포트 포워딩 없이 바로 서비스할 수 있습니다. 이는 마치 실제 호스트에서 애플리케이션을 외부에 노출하는 것과 같습니다.

논(none) 네트워크

말 그대로 아무런 네트워크를 쓰지 않는 것을 뜻합니다.

컨테이너(container) 네트워크

--net 옵션으로 container 를 입력하면 다른 컨테이너의 네트워크 환경을 공유할 수 있습니다. 공유되는 속성은 내부 IP, 네트워크 인터페이스의 맥(MAC) 주소 등입니다. --net 옵션의 값으로 container:[다른 컨테이너의 ID]와 같이 입력합니다.

컨테이너 네트워크의 구조

출처:

시작하세요 도커 (용찬호 지음)

--

--