독립된 컨테이너들이 서로 데이터를 주고받거나, 외부 클라이언트의 접속을 허용하기 위해서는 체계적인 네트워크 세팅이 필수적입니다.
포트 포워딩(-p)은 외부에서 컨테이너 내부로 접속할 수 있도록 문을 열어주는 핵심 기능입니다.
docker run -p [Host_IP]:[Host_Port]:[Container_Port] 구조를 가집니다.-p 8080:80
8080 포트로 들어오는 모든 요청(Inbound 트래픽)을, 해당 컨테이너 내부의 80 포트로 전달합니다.-p 127.0.0.1:8080:80 (오직 해당 호스트 내부에서만 접근 가능하도록 격리)-p 포트 포워딩을 명시적으로 선언한 포트로만 Inbound 트래픽이 허용됩니다.docker0 브리지 인터페이스를 거쳐 호스트의 공인 IP로 NAT(Network Address Translation) 변환되어 외부망으로 나갑니다.용도에 따라 다양한 컨테이너 네트워크 방식을 선택할 수 있습니다.
1. Bridge 네트워크 (기본)
docker0 라는 가상 스위치가 생성되어 모든 컨테이너를 연결합니다.# 사용자 정의 브리지 네트워크 생성
docker network create alpine-net
# 해당 네트워크에 첫 번째 컨테이너 연결
docker run -dit --name alpine1 --network alpine-net alpine ash
# 두 번째 컨테이너 연결
docker run -dit --name alpine2 --network alpine-net alpine ash
# alpine1 내부에 접속하여 alpine2로 통신 테스트 (내장 DNS 활용)
docker exec -it alpine1 ping -c 4 alpine22. Host 네트워크
--network host-p) 과정이 생략되므로 대용량 패킷을 다루는 성능 중시 애플리케이션에 유리하지만, 포트 충돌 가능성을 항상 염두에 두어야 합니다.