Docker 네트워킹

Docker 네트워킹 (Networking)

Docker 컨테이너 네트워킹의 기본 개념과 네트워크 드라이버를 설명하는 개요 문서예요.

출처: Docker networking overview

본문

Docker 네트워킹을 이해하면 컨테이너가 서로 통신하고, 호스트와 통신하며, 외부 세계와 통신하는 방법을 제어할 수 있어요. 컨테이너 네트워킹은 네트워크 드라이버(network driver) 로 구현돼요.

주요 네트워크 드라이버

  • bridge(기본): 컨테이너 간, 컨테이너-호스트 간 통신을 위한 가상 브리지. docker run 기본 네트워크.
  • host: 컨테이너가 호스트의 네트워크 스택을 그대로 사용. 성능은 좋지만 격리 약함.
  • none: 네트워킹을 하지 않음.
  • overlay: 여러 Docker 데몬(스웜/클러스터) 간 컨테이너를 연결.
  • macvlan / ipvlan: 컨테이너에 MAC/IP 주소를 부여해 물리 네트워크에 직접 연결.

사용자 지정 네트워크

네트워크를 만들어 컨테이너를 연결할 수 있어요.

$ docker network create mynet
$ docker run -d --network mynet nginx

네트워크는 docker network ls, docker network inspect 등으로 관리해요.

포트 게시

컨테이너 포트를 호스트에 노출하려면 -p / --publish를 사용해요.

$ docker run -d -p 80:80 nginx

컨테이너 간 통신은 같은 사용자 지정 네트워크에 연결하면 DNS로 이름 기반 통신을 할 수 있어요.

네트워크 드라이버 선택은 성능, 격리, 확장성 요구에 따라 달라져요.

더 알아보기