직전에 알아본 도커 컴포즈 중, 포트 포워딩이라는 단어가 나왔다.
이번 시간에는 포트 포워딩이 뭔지 알아보자
외부 노출?
컴퓨터에 돌아가는 프로그램(=컨테이너, 웹 브라우저, …) 를 외부에(=네트워크에) 노출시키자
ex)
현재 컴퓨터는 네트워크에 연결되어 있음 ➔ 웹 브라우저 프로그램 실행 시 네트워크에 연결된다
= 웹 브라우저 프로그램은 네트워크에 노출되어 있다
🙋♀️ 외부 노출하는 방법
네트워크에서 해당 프로그램을 찾아갈 수 있다면 외부 노출 가능
네트워크에서 해당 프로그램을 찾아가기 위해, 네트워크에서 유일하게 해당 프로그램을 구분할 주소 필요
➔ IP주소 (컴퓨터) + 포트주소 (컴퓨터 속 수많은 프로그램 중 하나)
🙋♀️ IP주소?
- 네트워크 상 컴퓨터를 구분하기 위한 주소
- 하나의 컴퓨터라 하더라도, 심지어 계속 같은 자리에 있어도 IP주소는 바뀔 수 있다
- 미리 정해져서 나오는 주소가 아니라, 상황에 따라 상이하게 부여되는 논리적인 주소
- 사용자가 kt 등 인터넷 서비스를 가입하여 공유기를 산다면, 그 공유기가 하나의 IP주소를 갖고,
공유기 범위에 있는 컴퓨터, 노트북, 핸드폰 등 장비에게 IP주소를 나누어 준다 (자세한 내용은 NAT참고)
🙋♀️ 포트 번호?
- 하나의 컴퓨터 장비 안에서 프로세스를 구분하기 위한 주소
- 만일 특정 프로세스에게 특정 포트 번호가 할당되어 있다면, 특정 번호의 포트가 열려있다고 표현
- 만일 하나의 IP주소를 갖는 컴퓨터에서 이 포트주소가 겹치면 충돌이 발생
- 용도에 따라 미리 정해져 있는 번호가 있으며, 예를 들어 80번의 경우 웹 서버와의 통신을 위한 포트 주소이다
ex) 웹 브라우저 프로그램은 포트번호 80번호를 사용한다
➔ 현재 웹 브라우저를 통해 사람들은 네트워크에 연결하여 웹 서버(ex: 네이버)와 통신 가능
컨테이너 외부 노출
내 컴퓨터는 이미 와이파이 공유기를 통해 IP주소를 할당받았을 것이다
이때 포트번호를 하나 지정하면,
네트워크에서 해당 컨테이너를 유일하게 찾아갈 수 있으므로 외부 노출 가능하다
🙋♀️문제
컨테이너는 호스트 컴퓨터 안에서 네트워크 가상화가 되어있다
➔ 호스트 (컴퓨터), 컨테이너의 포트는 서로 다른 네트워크 네임스페이스가 구축되어있다
호스트의 포트번호 80번, 컨테이너의 포트 번호 80번은 다르다
🙋♀️문제해결: 포트포워딩
컨테이너의 포트를 호스트 포트와 연결하면 된다!
다음 시간에는 도커 스웜을 알아보자
'클라우드 > 도커' 카테고리의 다른 글
[도커] 도커 13: 도커 스웜 (0) | 2024.11.23 |
---|---|
[도커] 도커 11: 도커 컴포즈 2 (0) | 2024.11.21 |
[도커] 도커 10: 도커 컴포즈 1 (1) | 2024.11.20 |
[도커] 도커 9: 도커 컨테이너 상세 조회 명령어 모음 (0) | 2024.11.19 |
[도커] 도커 8: 도커 이미지 심화 (0) | 2024.11.18 |