Docker Networking

Docker 네트워크는 네임스페이스와 브리지, NAT로 컨테이너를 연결한다

컨테이너는 자기 네트워크 스택이 있는 것처럼 보이지만, 호스트는 veth, bridge, iptables/NAT, port publishing으로 외부와 이어 준다.

bridge는 단일 호스트 컨테이너 통신의 기본 패턴이다.
사용자 정의 bridge는 DNS와 격리 관리가 더 좋다.
host, none, overlay, macvlan은 목적이 뚜렷할 때 고른다.
Container namespace web eth0, IP, route table을 독립적으로 가진 것처럼 동작한다.
172.18.0.2app listens :80veth peer
User-defined bridge br-app 컨테이너 간 이름 기반 DNS와 격리를 제공한다.
web → db:5432container DNS
host:8080 → web:80published port
Host boundary NAT / routing 외부로 나가는 트래픽은 호스트 네트워크를 통해 변환된다.
InternetSNAT / MASQUERADEiptables/nftables
host 호스트 네임스페이스 공유, 포트 충돌 주의
none 네트워크 격리, 직접 구성 필요
overlay 여러 Docker 호스트를 가로지르는 가상 네트워크
macvlan 컨테이너를 L2 네트워크의 별도 호스트처럼 노출