/엔지니어/Docker / 컨테이너/Docker 네트워크 이해와 실전 설정
Docker / 컨테이너중급ubuntumacoswindowsdockernetworkbridge

Docker 네트워크 이해와 실전 설정

bridge, host, overlay 네트워크의 차이와 컨테이너 간 통신, 외부 노출 설정 방법을 설명합니다.

Docker 네트워크 드라이버

드라이버설명사용 상황
bridge기본값, 호스트와 격리된 가상 네트워크단일 호스트 내 컨테이너 통신
host호스트 네트워크 직접 사용성능 최우선
none네트워크 완전 비활성화완전 격리 필요 시
overlay멀티 호스트 네트워크Docker Swarm

기본 네트워크 명령어

Bash
docker network ls
docker network inspect bridge
docker network create mynet
docker network create \
  --driver bridge \
  --subnet 172.20.0.0/16 \
  --gateway 172.20.0.1 \
  mynet

docker network connect mynet container1
docker network disconnect mynet container1

사용자 정의 bridge 네트워크 (권장)

Bash
docker network create app-net

docker run -d --name db      --network app-net postgres:16
docker run -d --name backend --network app-net \
  -e DB_HOST=db \
  myapp:latest

Compose 네트워크 설정

YAML
services:
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    networks:
      - frontend

  app:
    build: .
    networks:
      - frontend
      - backend

  db:
    image: postgres:16
    networks:
      - backend

networks:
  frontend:
  backend:
    internal: true

포트 매핑

Bash
docker run -p 8080:80 nginx
docker run -p 127.0.0.1:8080:80 nginx   # localhost만 노출
docker port container1

디버깅

Bash
docker exec -it myapp sh
# nslookup db
# curl http://db:5432

docker inspect --format '{{.NetworkSettings.IPAddress}}' mycontainer
#docker#network#bridge#compose#컨테이너
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서Docker 공식 문서

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.