네트워크와 포트 (Networking)
같은 브리지 네트워크에 속한 컨테이너들은 각자 사설 IP를 받고 서비스 이름만으로 서로를 찾습니다. 하지만 이 네트워크는 호스트 바깥에서 보이지 않기 때문에, 외부에서 접근하려면 `-p 8080:80` 처럼 호스트 포트를 컨테이너 포트에 연결해 줘야 합니다. 컨테이너끼리는 이름으로, 바깥에서는 포트 매핑으로 — 이 둘을 구분하는 것이 핵심입니다.
01네트워크와 포트 (Networking)
개념 한눈에 보기컨테이너 셋을 같은 브리지 네트워크에 띄웠습니다. 각자 사설 IP를 하나씩 받습니다.
사용자 정의 네트워크에는 내장 DNS 가 있어 컨테이너 이름이 곧 호스트 이름이 됩니다. api 는 db 의 IP를 몰라도 db:5432 로 붙습니다.
IP는 재시작할 때마다 바뀔 수 있지만 이름은 그대로입니다. 그래서 설정 파일에는 IP가 아니라 서비스 이름을 씁니다.
여기까지는 전부 네트워크 안쪽 이야기입니다. 이 경계는 바깥에서 보이지 않습니다.
외부에서 접근하려면 -p 8080:80 으로 호스트 포트를 컨테이너 포트에 연결해야 합니다. 요청은 NAT 를 거쳐 web:80 으로 전달됩니다.
매핑하지 않은 포트는 바깥에서 닿을 수 없습니다. 화살표가 아예 없다는 것이 곧 경로가 없다는 뜻입니다. api 와 db 를 노출하지 않는 것 자체가 기본 방어선입니다.
네트워크가 다르면 이름으로도 통신할 수 없습니다. 네트워크를 나누는 것이 곧 격리 경계를 나누는 것입니다.
직접 해보기 · Network
02 쉽게 이해하기
For Everyone같은 사용자 정의 네트워크 안에서는 컨테이너 이름이 그대로 DNS 이름이 됩니다. 바깥에서 닿으려면 호스트 포트를 컨테이너 포트에 매핑해야 하고, 매핑하지 않은 포트는 경로 자체가 없습니다.
Docker 는 기본 브리지 네트워크를 만들고 컨테이너마다 사설 IP를 줍니다.
사용자 정의 네트워크에서는 내장 DNS 가 컨테이너 이름을 IP로 풀어 주므로 `db:5432` 처럼 이름으로 접속합니다.
외부 트래픽은 포트 매핑(NAT)으로 호스트 포트 → 컨테이너 포트로 전달되고, 매핑하지 않은 포트는 바깥에서 닿을 수 없습니다.
서로 다른 네트워크에 있는 컨테이너는 이름으로도 통신할 수 없습니다.
- –마이크로서비스 간 통신 설정
- –포트 충돌 해결
- –외부 노출 범위 최소화
- –네트워크 분리로 격리 수준 조정
03 자주 묻는 질문
FAQ네트워크와 포트 (Networking)란 무엇인가요?+
같은 브리지 네트워크에 속한 컨테이너들은 각자 사설 IP를 받고 서비스 이름만으로 서로를 찾습니다. 하지만 이 네트워크는 호스트 바깥에서 보이지 않기 때문에, 외부에서 접근하려면 `-p 8080:80` 처럼 호스트 포트를 컨테이너 포트에 연결해 줘야 합니다. 컨테이너끼리는 이름으로, 바깥에서는 포트 매핑으로 — 이 둘을 구분하는 것이 핵심입니다.
네트워크와 포트 (Networking)은(는) 어디에 사용하나요?+
마이크로서비스 간 통신 설정, 포트 충돌 해결, 외부 노출 범위 최소화, 네트워크 분리로 격리 수준 조정
네트워크와 포트 (Networking)를 쉽게 비유하면?+
같은 사용자 정의 네트워크 안에서는 컨테이너 이름이 그대로 DNS 이름이 됩니다. 바깥에서 닿으려면 호스트 포트를 컨테이너 포트에 매핑해야 하고, 매핑하지 않은 포트는 경로 자체가 없습니다.
