수복의 프로그래밍 여행기
article thumbnail

방법

 

이전에는 포트를 넣지 않고 설치 후 실행하였다면, 이번에는 포트를 넣은 후 접속까지 하도록 할 수 있습니다.

docker run -d --name [이름] -p [호스트포트]:[컨테이너 포트] [이미지이름]

 

예제로 저는 이름은 web-server

호스트포트는 8000 

컨테이너 포트는 80

이미지는 nginx 로 설정한다면?

docker run -d --name web-server -p 8000:80 nginx

 

이렇게 입력 가능합니다.

 

포트를 입력한 것과 입력하지 않는 것은 아래와 같이 차이점을 확인 가능합니다.

 

 

포트포워딩이란?

- 내부 네트워크(사설 IP)에 있는 장치나 서비스에 외부 네트워크(공인 IP)에서 접근할 수 있도록 특정 포트를 열어주는 네트워크 설정 방법입니다.

 

말이 어려우니 그냥 원격 접속이 가능하게 만든다고 저는 이해하였습니다.

 

그런데 원격 접속을 위해서는 IP 그리고 포트가 몇 번인지 알아야 접속이 가능합니다.

코딩애플에서 포트포워딩 예시

 

여러 포트 중 8000번 포트를 열고 그 이후 80번 포트로 들어가도록 만들었습니다.

 

그래서 웹 에서 localhost:8000 을 입력하면 container  안에 설치한 nginx 로 접속이 가능합니다.

 

여기서 두 가지 질문이 나올 수 있습니다.

 

localhost 와 nginx 의 포트를 같게 할 경우??

 

새로 하나 생성하여 포트가 80번 포트로 나오게 합니다.

 

이렇게 될 경우 아래의 그림처럼 접속이 됩니다.

 

이렇게 된 경우 localhost:80 또는 localhost 둘 다 사용하여 웹서버로 접속이 가능합니다.

 

왜 nginx는 80번 포트로 입력을 하는가?

 

기본 포트라는 (Default Port) 개념으로 인터넷에서 특정 프로토콜(HTTP, HTTPS 등)은 기본적으로 사용되는 포트번호가 정해져 있습니다.


여기서 웹 브라우저는 HTTP 요청 시 자동으로 포트 80을 사용하기 때문에, 포트번호를 생략해도 자동으로 80번 포트로 연결됩니다.

 

좀 더 세부적인 것은 컨테이너 내부에 접속해서 확인 가능합니다.

 

 

 

 

 

 

반응형
profile

수복의 프로그래밍 여행기

@컴수복

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!