ip와 포트, 도커와 포트바인딩

GGUKI·2022년 9월 28일
0

서버가 클라이언트에게 요청받은 데이터를 전달할 때 무수히 많은 컴퓨터들 중 과연 어떤 컴퓨터에, 그리고 컴퓨터 화면 내의 무수히 많은 네이버, 카톡, 구글 중 과연 어떤 곳에 데이터를 전달해야하는지 알 수 있을까요?

정답은 ip와 포트에 있습니다.

ip주소와 port

ip는 쉽게 00동 00단지 00아파트, 포트는 아파트 호수라고 보면 됩니다.
인터넷이 요청받은 데이터를 컴퓨터에게 전달하기 위해서는 주소를 알아야 합니다. 우선 ip로 어떤 컴퓨터에서 보냈는지 확인한 후 더 세부적으로 그 컴퓨터 내에서도 네이버인지, 카톡인지, 크롬인지 등 어느 곳에서 데이터를 요청했는지를 알아야 합니다.
포트는 프로세스에 따라 다릅니다. 계속해서 주소로 예를 들자면, 카톡창은 101호, 구글독스창은 102호, 날씨창은 103호,,,인 것입니다. ip로 기기를 찾았다면 ip주소로 기기를 찾고, port 번호로는 데이터 요청했던 프로그램 찾아서 갖다주는 것입니다. 같은 기기 내에 여러 프로그램이 있는데 크롬이 요청한 데이터를 네이버에 주면 안되기 때문에 구분하기 위해서 포트 번호가 존재하는 것이죠.

도커와 포트바인딩

도커는 가상환경입니다. 즉 도커 컨테이너(=도커에서 실행 중인 프로그램)은 밖의 상황을 모릅니다. 그래서 도커 안의 프로그램 하나가 지가 1호실에 사는 줄 알고 있죠.

근데 사실 제 컴퓨터에는 1호실, 2호실에 이미 카톡과 크롬이 살고 있습니다. 그리고 3호실에 도커가 들어가있는겁니다. 따라서 인터넷에서 제 도커컨테이너 속 프로그램에 데이터를 주려면, 컴퓨터 기준 1호실이 아니라 3호실에 데이터를 줘야합니다.

그래서 포트 바인딩이 필요한 것입니다. 포트바인딩을 하게 되면 “도커 안에 있는 놈이 1호실에 데이터 주라고 하면, 내컴퓨터 1호실이 아니라 3호실로 데이터 던져주세요."라고 할 수 있는 것입니다.

profile
신기술 조아

0개의 댓글