[3] Docker - 도커엔진 포트포워딩 / 네트워크설정
블로그를 옮겼습니다.
이곳을 클릭하거나 아래 링크를 참고해주세요!
( 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] )