본문 바로가기
Engineering/도커(Docker)

[Docker] Docker Container 외부 노출하기 (PORT 바인딩)

by Hyen4110 2022. 12. 21.

Docker Container 외부 노출하기 (HOST PORT 바인딩)

컨테이너는 가상머신과 마찬가지로 가상 IP주소를 할당 받는데,
기본적으로 도커는 컨테이너에 172.17.0.x의 IP를 순차적으로 할당합니다.
이는 컨테이너를 실행해서 ifconfig 명령어로 확인할 수 있습니다.

만일 아무런 설정을 하지 않았다면,
이 컨테이너는 외부에서 접근할 수 없으며
도커가 설치된 호스트에서만 접근할 수 있습니다.

따라서, 외부에 컨테이너를 노출하고 싶다면,
IP와 포트를 호스트의 IP와 포트에 바인딩해야합니다.

IP/PORT 연결

type#1 PORT만 바인딩

-p 옵션으로 호스트 80포트와 컨테이너 80포트를 연결

$ docker run -it --name mywebserver -p 80:80 centos:centos7 

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

 

원래 컨테이너에 접근하려면
컨테이너의 IP인 172.17.0.x:80로 접근해야하지만,
호스트와 컨테이너를 연결했으므로 호스트의 IP와 PORT로 172.17.0.x:80에 접근할 수 있습니다

 

type#2 호스트의 특정 IP에 바인딩

호스트의 특정 IP를 사용하고 싶다면 192.168.0.100:7777와 같이 바인딩할 호스트 IP와 포트를 명시

$ docker run -it --name mywebserver -p 192.168.0.100:7777:80 centos:centos7

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

 

 

<참고자료>

[https://product.kyobobook.co.kr/detail/S000001766450]

 

댓글