도커 컨테이너는 기본적으로 **"격리"**되어 있어요. 감옥처럼요! 🔒 하지만 웹 서버가 DB에 접속하려면 문을 열어줘야겠죠? 이때 필요한 것이 바로 Docker Network입니다.
1️⃣ 핵심 네트워크 드라이버 3대장 (The Big 3) 🚦
도커를 설치하면 기본적으로 생기는 3가지 네트워크 모드가 있어요. 상황에 맞춰 골라 쓰면 됩니다!
① Bridge (브리지) - "기본값 & 사설망" 🌉
- 설명: 아무 설정 없이 컨테이너를 켜면(docker run) 자동으로 여기에 연결돼요.
- 특징: 호스트(내 컴퓨터)와는 분리된 **"그들만의 사설 네트워크"**를 만들어요. 외부로 나가려면 호스트의 IP를 빌려 씁니다(NAT).
- 용도: 일반적인 컨테이너 실행 시 가장 많이 사용!
② Host (호스트) - "벽 허물기" 🏠
- 설명: 컨테이너의 네트워크 격리를 해제하고, 내 컴퓨터(Host)의 네트워크를 그대로 공유해요.
- 특징: 포트 포워딩(-p 80:80)이 필요 없어요. 내 컴퓨터 IP가 곧 컨테이너 IP가 됩니다.
- 장점: 속도가 가장 빨라요! 🚀 (네트워크 변환 과정이 없어서)
- 단점: 포트 충돌 조심! (내 컴퓨터에서 이미 80번 포트를 쓰고 있으면 에러 💥)
③ None (없음) - "완전 고립" 🚫
- 설명: 랜선을 뽑아버린 상태입니다. 인터넷 안 됨! 🙅♂️
- 용도: 보안이 극도로 중요한 작업을 하거나, 네트워크가 필요 없는 배치 작업을 할 때.
2️⃣ 꿀팁: "사용자 정의 브리지 (User-defined Bridge)"를 써야 하는 이유! 🍯💡
이게 진짜 중요해요! ⭐ 도커가 기본으로 만들어주는 bridge 말고, 내가 직접 만든 네트워크를 써야 합니다.
- 기본 Bridge: 통신하려면 IP 주소(예: 172.17.0.2)를 알아야 해요. 근데 IP는 재시작하면 바뀔 수 있죠? 골치 아파요. 😫
- 사용자 정의 Bridge: **컨테이너 이름(Hostname)**으로 통신할 수 있어요! 😍
- ping db-container라고 치면 알아서 찾아갑니다. (내부 DNS 마법! 🧙♂️)
Bash
# @title 사용자 정의 네트워크 생성 및 사용 예시
# 1. 'my-net'이라는 나만의 네트워크 만들기 🕸️
docker network create my-net
# 2. mysql을 'my-net'에 연결해서 실행 (이름은 'db') 💾
docker run -d --name db --network my-net mysql:latest
# 3. 웹 서버를 'my-net'에 연결해서 실행 🌐
# 이제 이 웹 서버는 'db'라는 이름만으로 mysql을 찾을 수 있어요!
docker run -d --name web --network my-net my-web-app
3️⃣ 자주 쓰는 명령어 (Command Cheat Sheet) 📜
- docker network ls: 현재 있는 네트워크 목록 보기 👀
- docker network create [이름]: 새로운 네트워크 만들기 🆕
- docker network inspect [이름]: 네트워크 상세 정보(연결된 컨테이너 IP 등) 확인 돋보기 🔍
- docker network connect [네트워크] [컨테이너]: 실행 중인 컨테이너에 랜선 꽂아주기 🔌
💡 쉽고 정확한 비유: "회사 사무실의 전화 시스템" 📞🏢
Docker Network는 회사의 내선 전화와 똑같아요!
- Bridge (브리지) 👉 "내선 전화" ☎️ : 직원들(컨테이너)끼리는 "내선 301호"로 공짜로 통화해요. 외부(인터넷)에 걸 때는 회사의 대표 번호(Host IP)를 통해서 나가요.
- Host (호스트) 👉 "개인 휴대폰" 📱 : 회사 전화망을 안 거치고 바로 자기 핸드폰을 써요. 빠르고 직통이지만, 번호(포트) 관리를 잘해야 해요.
- None (논) 👉 "전파 차단실" 📵 : 아무런 통신도 할 수 없는 독방이에요. 혼자 조용히 일만 해야 해요.
- 사용자 정의 Bridge (DNS) 👉 "단축 번호 저장" 📒 : 복잡한 전화번호(IP)를 외울 필요 없이, "김 대리님(컨테이너 이름)"이라고 저장된 버튼만 누르면 바로 연결돼요!
'AI 엔지니어준비' 카테고리의 다른 글
| (PyTorch/TF)도 triton을 사용하면성능이 올라가나? (0) | 2026.01.20 |
|---|---|
| 🔱 Streamlit + FastAPI + Triton: 고성능 AI 서빙 아키텍처 설계 🏛️🚀 (0) | 2026.01.20 |
| 🐳 도커 스토리지 바인드 마운트, tmpfs, 그리고 --mount 🚩 (1) | 2026.01.20 |
| 🐳 도커 이미지 vs 도커 볼륨: 무엇이 다를까? 🤔 (0) | 2026.01.20 |
| JD(채용공고) 분석 (0) | 2026.01.18 |