Docker
[Docker] Docker network
얀타호수
2025. 8. 13. 09:38
도커 네트워크 구조에 대해 알아봅시다.,
docker 컨테이너는 네트워크 설정을 대부분 자동으로 해줍니다.
docker run -itd --name test-nginx nginx
이런 명령어를 실행할 때, network에 대한 설정을 따로 할 필요가 있었을까요?
우리는
ip를 직접 할당
라우팅 테이블 수정
방화벽 규칙 추가
DNS 설정
을 하지 않았습니다.

docker는 기본적으로 vm 을 veth pair로 생성하는데요
veth 한쪽을 container의 ceth0에 붙여 내부 IP를 만들고
다른 한쪽을 host의 bridge network에 붙인다 여기서 bridge network는 docker0

container → 외부 접근 시 docker0 거쳐 호스트의 NAT 규칙을 통해 통신
밖에서 컨테이너로 접근하기 위해선..?
컨테이너는 별도의 네트워크 네임스페이스를 가지기 때문에,
호스트에서 컨테이너로 직접 접근하는 것은 추가설정이 필요합니다.
외부에서 컨테이너로 접근하기 위해선
포트포워딩 이 필요합니다 :)
사실 저희가 도커 컨테이너 실행할 때 많이 사용했었습니다아
docker run -p [호스트포트]:[컨테이너포트]
- 내부적으로는 iptables 포트포워딩으로 규칙 생성
- Dockerfile의 EXPOSE와는 다름
- Dockerfile EXPOSE → 포트 정보 제공
- -p (포트포워딩) → 호스트와 포트 매핑