1. bridge network
Docker에서 디폴트 네트워크 드라이버
호스트 내부에 가상 스위치(bridge) 를 만들고, 컨테이너들을 여기에 연결하는 구조.
[컨테이너 A] ├─ docker0 (bridge) ─ 호스트 NIC ─ 외부 [컨테이너 B] ─
리눅스 기준으로 docker0라는 네트워크 인터페이스가 자동 생성됨.
2. 통신 방식 정리
(1) 컨테이너 ↔ 컨테이너
- 같은 bridge 네트워크면 사설 IP로 직접 통신 O
- 사용자 정의 bridge에서는 컨테이너 이름으로 DNS 통신 O
- 기본 bridge에서는 이름 해석 X (IP 필요)
(2) 컨테이너 ↔ 외부
- 컨테이너 → 외부: NAT 통해 가능 O
- 외부 → 컨테이너: 기본적으로 차단 X
→ 포트포워딩(-p) 필요
docker run -p 8080:80 nginx
3. 기본 bridge vs 사용자 정의 bridge
구분기본 bridge사용자 정의 bridge
| 자동 생성 |
O |
X |
| 컨테이너 이름 DNS |
X |
O |
| 네트워크 격리 |
약함 |
강함 |
| 권장 여부 |
X |
O |
docker network create my-bridge docker run --network my-bridge ...
4. 왜 bridge를 쓰나?
- 단일 서버에서 여러 컨테이너 서비스 구성
- docker-compose 기본 네트워크
- 보안상 외부 직접 노출 최소화
5. 실무에서 자주 보는 구조
- Web / API / DB 컨테이너 → 같은 bridge
- Web만 -p로 외부 노출
- DB는 내부 통신만 허용 O