C.W.K.
Stream
Lesson 01 of 04 · published

Custom Network — 서비스 이름으로 DNS

~14 min · networking

Level 0Container 호기심
0 XP0/36 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

디폴트 bridge 의 치명적 갭

Docker 의 디폴트 bridge network 의 container 는 IP 로만 서로 얘기 가능 — IP 는 재시작 시 바뀜. 디폴트 bridge 에선 container 간 DNS 해석 없음.

Custom bridge network 가 고침

Custom bridge 에선 Docker 가 임베디드 DNS 서버 돌림 (container 안에서 127.0.0.11). Container 가 서로 container 이름 으로 해석. curl http://api:8000 그냥 동작.

그래서 "테스트 container 둘" 넘는 모든 멀티 container 셋업이 custom network 써야 해.

Code

Custom network 에서 이름으로 DNS·bash
docker network create app-net

# Two containers on the same custom network
docker run -d --name api --network app-net myapi:1.0
docker run -d --name web --network app-net -p 3000:3000 myweb:1.0

# From inside web, reach api by name
docker exec web curl http://api:8000/health
# ← works because Docker's embedded DNS resolves 'api'
계층 격리 위한 멀티 network·bash
docker network create frontend-net
docker network create backend-net

# Web sees only frontend
docker run -d --name web --network frontend-net -p 80:80 nginx

# API straddles both — bridge between web and db
docker run -d --name api --network frontend-net myapi
docker network connect backend-net api

# DB is only on backend (web cannot reach it)
docker run -d --name db --network backend-net postgres:16

# Result:
#   web → api  ✓ (frontend-net)
#   api → db   ✓ (backend-net)
#   web → db   ✗ (different networks, isolated)

External links

Exercise

위 계층 network 예시 빌드. web 에서 api 도달 가능, db 도달 X 확인. api 에서 둘 다 도달 가능 확인. curl 결과 캡처.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.