Engineering/도커(Docker)

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

Hyen4110 2022. 12. 21. 17:00

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]