들어가며
- 도커 컨테이너로 서비스를 띄울 수 있습니다.
- 외부에서 해당 컨테이너로 접근을 가능하도록 하려면, 컨테이너의 포트를 외부로 노출 시켜야 합니다.
- 이때, 컨테이너의 포트를 외부로 노출시켜 외부 연결을 허용하도록 하는 것이 port forwarding 입니다.
Container Port 노출 시키기
컨테이너는 외부 통신을 docker0 를 통해 진행합니다.
컨테이너를 실행시킬 때 포트포워딩을 하면, iptables rule을 통해 포트가 노출됩니다.
docker run --name web -d -p 80:80 nginx:1.14 iptables -t nat -L -n -v Chain DOCKER (2 references) pkts bytes target prot opt in out source destination 0 0 RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0 0 0 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.17.0.2:80
위 결과의 마지막 줄을 확인해보면, 실행한 컨테이너에 대해 룰이 생성된 것을 확인할 수 있습니다.
마무리
- 외부로부터 컨테이너로 통신하기 위해 포트포워딩 옵션으로 컨테이너를 실행해 보았습니다.
- 이때 iptables rule에 추가된 것을 확인해 보았습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.