티스토리 뷰

블로그를 옮겼습니다.
이곳을 클릭하거나 아래 링크를 참고해주세요!
mingoogle.tistory.com/ ) 



*도커 컨테이너 외부 접근


1) 컨테이너생성하기.


$ docker run -i -t --name ip_test ubuntu:14.04


2) 컨테이너의 네트워크 정보를 확인한다.


$ ifconfig




3) 도커의 NAT IP인 172.17.0.2를 할당받은 eth0 인터페이스와 로컬 호스트인 lo 인터페이스가 있다. 

아무런 설정을 하지않을경우 외부에서 접근이 불가능하다.


4) 해당컨테이너를 나간뒤 다시한번 컨테이너를 생성한다. ( 호스트에서 셸입력)

$ docker run -i -t --name ip_test2 -p 80:80 ubuntu:14.0

-p [호스트포트] [컨테이너포트] 옵션값 : 컨테이너의 포트를 호스트의포트와 바인딩해 연결할 수 있게 설정

==> 호스트포트로 접속 시 컨테이너 포트로 접속.




5) 컨테이너안에서 다음과같은 셸을입력한다.


root@8f56c9027696:/# apt-get update

root@8f56c9027696:/# apt-get install apache2 -y

root@8f56c9027696:/# service apache2 start



6) localhost로 접속해본다. or 호스트 ip 주소


ex) localhost:80



접속이 잘 되는 것을 확인할 수 있다.



TIP) 컨테이너 목록을 보고 포트포워딩정보를 알 수 있다.


docker ps - a



- 설치한 아파치 웹서버의 기본 웹서비스 포트가 80이다. 따라서 컨테이너 생성 시 80이 아닌 81로 했을경우 웹페이지에서 안보여질 수 있다.


ex) $ docker run -i -t --name ip_test2 -p 80:81 ubuntu:14.0

( 호스트 ip의 80번으로접근 -> 80번 포트에 해당하는 컨테이너로 포워딩됨 -> 웹 서버(아파치)에 접근[기본 포트80] )







댓글