Docker데이터와 네트워크

포트 공개와 bridge 네트워크

호스트와 컨테이너 사이의 포트 연결, 그리고 컨테이너끼리의 통신에서 bridge 네트워크가 어떤 역할을 하는지 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

bash
docker run --name web -d -p 8080:80 nginx:alpine

설명

  • 컨테이너는 기본적으로 격리된 네트워크 안에서 실행되므로, 외부에서 접근하려면 포트를 공개해야 합니다.
  • -p 8080:80은 호스트의 8080 포트를 컨테이너의 80 포트에 연결한다는 뜻입니다.
  • 포트를 공개하지 않으면 브리지 네트워크 안의 다른 컨테이너나 호스트 내부에서는 보일 수 있어도, 브라우저나 외부 요청에 바로 노출되지는 않습니다.
  • bridge 네트워크는 같은 호스트 안의 컨테이너들을 묶는 기본적인 네트워크 드라이버입니다.
  • 특히 사용자 정의 bridge 네트워크를 쓰면 컨테이너 이름 기반 통신이 더 편해져, 앱과 DB를 묶는 실전 구성이 쉬워집니다.

짧은 예제

bash
docker network create app-net

docker run -d --name db --network app-net postgres:16
docker run -d --name app --network app-net -p 3000:3000 my-app:latest

빠른 정리

개념의미
-p 8080:80호스트 8080을 컨테이너 80에 연결
미공개 포트외부에서 직접 접근 불가
기본 bridge기본 네트워크, 단순 실험에 적합
사용자 정의 bridge이름 기반 통신과 관리가 더 편함
대표 패턴앱은 포트 공개, DB는 내부 네트워크만 연결

주의할 점

모든 서비스 포트를 무조건 호스트에 공개할 필요는 없습니다. 보통 웹 앱만 공개하고, 데이터베이스나 캐시는 내부 네트워크에서만 통신하게 두는 편이 더 안전합니다.

참고 링크

2 sources