본문 바로가기
Development, Architecture/Docker, k8s

[Docker] 도커와 포트 포워딩(Port fowarding)

by ggyongi 2023. 3. 18.
반응형

기본적으로 도커 컨테이너(Container)는 외부에서 접근할 수 없습니다. 이는 도커의 기본 보안 설정 중 하나로, 컨테이너 내부에 있는 애플리케이션이 외부와 통신하는 것을 제한하기 위한 것입니다.

 

하지만 외부에서 컨테이너에 접근해야 할 필요가 있을 경우, 다양한 방법을 사용하여 컨테이너에 접근할 수 있습니다.

 

가장 일반적인 방법은 "포트 포워딩(Port forwarding)"이며, 이를 사용하면 호스트의 포트와 컨테이너의 포트를 매핑하여 외부에서 접근할 수 있도록 할 수 있습니다.

 

포트 포워딩(Port forwarding)은 호스트와 도커 컨테이너(Container) 간의 포트를 매핑하여,

외부에서 호스트의 포트로 접근하면 해당 컨테이너의 포트로 연결해주는 방법입니다.

 

* 호스트란? 

더보기

도커(Docker)에서 "호스트(Host)"란, 도커가 실행되고 있는 물리적인 서버 또는 가상 머신(VM)을 의미합니다.

즉, 도커는 호스트에서 실행되는 애플리케이션을 컨테이너(Container)라는 가벼운 가상 환경으로 격리해서 실행시키는 기술입니다. 이때 호스트는 컨테이너들을 실행시키는데 필요한 자원(예: CPU, 메모리, 디스크 등)을 제공하고, 컨테이너 간의 통신 등을 관리합니다.

따라서 도커에서 "호스트(Host)"라고 하면, 도커가 실행되는 물리적 또는 가상적인 서버를 가리키는 용어로 사용됩니다. 이 용어는 도커 컨테이너 관련해서 자주 사용되는 용어 중 하나입니다.

 

보통 도커 컨테이너 내부에 있는 애플리케이션은 특정 포트를 사용하고 있습니다. 예를 들어, 웹 애플리케이션이라면 80번 포트를 사용할 수 있습니다. 하지만 기본적으로 컨테이너는 외부에서 접근할 수 없기 때문에, 외부에서 접근할 수 있도록 포트 포워딩 설정을 해주어야 합니다.

포트 포워딩은 -p 옵션을 사용하여 설정할 수 있습니다. 예를 들어, 호스트의 8080번 포트와 컨테이너의 80번 포트를 매핑하는 경우 다음과 같이 명령어를 입력합니다.

docker run -p 8080:80 [이미지명]

 

이렇게 하면, 호스트에서 http://localhost:8080으로 접근하면 해당 컨테이너의 80번 포트로 연결되어 애플리케이션에 접근할 수 있습니다.

 

또한, 여러 개의 포트를 매핑할 수도 있습니다. 예를 들어, 호스트의 8080번 포트와 8081번 포트를 각각 컨테이너의 80번 포트와 81번 포트로 매핑하는 경우 다음과 같이 명령어를 입력할 수 있습니다.

docker run -p 8080:80 -p 8081:81 [이미지명]
 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글