두 번째: 호스트 측 웹 브라우저에서 가상 머신에 서 있는 docker의 웹 서버에 액세스

하고 싶은 일



게제대로.

환경


  • 호스트 OS: Windows 10
  • 가상 머신:Virtual Box
  • 게스트 OS: Ubuntu(16.04.6)
  • docker


  • 전제 조건


  • 호스트 측에서 게스트 측에 액세스하기위한 설정이 있습니다.
    Key Word: NAT + 호스트 전용 어댑터
  • 게스트 OS에 docker를 이동하기 위한 환경이 갖추어져 있다

  • 했던 일


  • Virtual Box : 네트워크 설정에서 어댑터 1 (NAT) 포트 포워딩을 다음과 같이 설정



  • 이름 (선택 사항)
    프로토콜
    호스트 포트
    게스트 포트


    HTTP ※1
    TCP
    50080
    80

    HTTP ※2
    TCP
    58080
    8080

    SSH
    TCP
    50022
    22


    ※1 게스트OS상에 서버(Tomcat, apache2등)를 세운 상태에서 호스트측으로부터 "http://게스트OS의 IP 애드:50080"
    에 액세스하면 서 있는 서버의 환영 페이지로 전환
    ※2 docker 위에 세운 웹 서버에 액세스하기 위한 포트를 지정(포트 번호는 임의로 OK)
  • 웹 서버 이미지 만들기
  • 이번 목적은 단지 호스트측의 웹 브라우저로부터 docker상의 web 서버(on 가상 머신)
      에 접속하기 때문에 웹 브라우저에서 "Hello world"를 출력하는 간단한 웹 앱
    이미지를 만듭니다. (여기는 이번 주안이 아니기 때문에 절차의 개요 만 남겨 둡니다)


  •    ※Dockerfile은 임의의 디렉토리내에 작성
       ※Dockerfile을 작성한 것과 같은 디렉토리내에 index.html("Hello world"라고 기재)도 준비해 둔다
       ※Dockerfile의 기재 내용은 아래의 기사를 참고로 했다
        htps : // m / n l0_b / ms / 1에서 829288db2670276 8

    순서 1: 게스트 OS상에 임의의 디렉토리를 작성
    2단계: 만든 디렉터리에 Dockerfile 만들기
    #Dockerfileの中身
    FROM centos
    CMD echo "now running..."
    RUN yum install -y httpd
    ADD ./index.html /var/www/html/
    #ポート80を開ける
    EXPOSE 80
    #起動した時にapache起動するコマンド
    CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
    
  • 만든 Dockerfile을 기반으로 컨테이너를 시작합니다.
  • 다음 명령을 실행하여 컨테이너를 시작합니다.

  • $ docker run -d --name コンテナ名(任意) -p 8080:80 イメージ名(or ID)
    

    ※ "-p 8080:80"로 하는 것으로, 게스트 OS측의 8080포트와 컨테이너측의 80포트가 끈다.
    ※ 게스트 OS 측의 8080 포트는 호스트 측의 58080 포트와 연결되어 있으므로,
    호스트 측에서 게스트 OS 측의 58080 포트에 대한 액세스는 게스트 OS의 8080 포트를 통해
    컨테이너측의 80에의 액세스가 되어, 컨테이너상의 Web 서버에의 액세스가 가능하게 된다.

  • 실제로 액세스해 보세요

    ⚪︎ 호스트 측에서 게스트 측으로 50080 포트를 통해 액세스 한 경우
    →게스트 OS상에서 기동하고 있는 apache2의 디폴트 페이지가 표시된다.



  • ⚪︎ 호스트 측에서 게스트 측으로 58080 포트를 통해 액세스 한 경우
    → "Hello world"가 표시된다.

    좋은 웹페이지 즐겨찾기