Docker 네트워킹
Docker 네트워킹 (Networking)
Docker 컨테이너 네트워킹의 기본 개념과 네트워크 드라이버를 설명하는 개요 문서예요.
본문
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로 이름 기반 통신을 할 수 있어요.
네트워크 드라이버 선택은 성능, 격리, 확장성 요구에 따라 달라져요.