[ 웹서버 사용 ]
PC1 에는 웹 브라우저가 설치되어 있고, PC2 에는 웹서버가 설치되어 있습니다.
웹페이지를 파일로 만들어서 저장장치의 특정 디렉토리에 위치시켜야 합니다.
이때 데이터가 저장된 공간을 File System 이라고 합시다.
File System 내의 디렉토리에 index.html 을 위치시키고,
웹서버야 누가 웹페이지 요청하면 이 디렉토리에서 찾아야해 라고 설정을 해놓습니다.
컴퓨터에는 약 65000개의 포트라는 개념이 있어서 컴퓨터에 설치된 여러 소프트웨어를 네트워크적으로 구별해줍니다.
이게 없다면 컴퓨터로 접속이 들어왔을 때 어떤 소프트웨어가 그 접속을 마중 나갈지 알 수가 없습니다.
우리 아파치 웹서버는 80번 포트에서 접속을 대기할 수 있도록 설정이 되어 있습니다.
웹서버가 설치된 주소는 example.com 이라고 해봅시다.
PC1에서 http://example.com:80/index.html 이라고 주소를 꽝 치면 웹브라우저는 example.com 으로 접속됩니다.
이때 80번 포트로 접속하게 되는 겁니다.
웹서버가 대기중이기 때문에 웹서버로 요청이 전달됩니다.
웹서버는 디렉토리에서 index.html 파일을 찾습니다.
읽어서 웹브라우저에게 이를 전달하면 이 과정이 끝나게 됩니다.
[ Docker를 이용한 웹서버 사용 ]
Docker를 이용하면 웹서버가 컨테이너에 설치 됩니다.
컨테이너에 설치된 운영체제를 Docker Host 라고 부릅니다
하나의 도커 호스트에는 여러 개의 컨테이너가 만들어질 수 있습니다.
컨테이너 호스트 모두 독립적인 실행환경이기 때문에 독립적인 Port와 File System을 가지고 있습니다.
웹브라우저로 웹서버에 접속을 시작해보자고요 접속이 될까요 안됩니다.
현재 호스트와 컨테이너는 연결이 끊어져있기 때문에 연결이 되지 않습니다.
호스트의 80번 포트와 컨테이너의 80번 포트를 연결해주면 됩니다.
앞의 80은 호스트의 포트, 뒤의 80은 컨테이너의 포트입니다.
sudo docker run -p 80:80 httpd
호스트의 80번으로 들어온 신호가 컨테이너의 80번 포트로 전송되는 것입니다.
이렇게 연결된 포트로 신호를 전달하는것을 Port Forwarding 이라고 합니다
웹서버로 전송이 되고 나머지 과정은 이전과 같습니다.
접속 경로가 8000으로 바뀌었다면 앞의 80이 8000이 되게 됩니다.
나머지 과정은 이전과 같습니다.
[ 실습 ]
sudo docker pull httpd
sudo docker run --name ws3 -p 8081:80 httpd
웹브라우저와 웹서버가 같기 때문에 localhost 로 8081번 포트에 접속 해 봅시다.
https://localhost:8081/index.html
접속이 잘 됨을 확인할 수 있습니다.
'Docker' 카테고리의 다른 글
[Docker 입문] 도커에서 이미지를 만드는 방법 _생활코딩 (0) | 2023.01.23 |
---|---|
[Docker 입문] 호스트와 컨테이너의 파일시스템 연결 _생활코딩 (0) | 2023.01.23 |
[Docker 입문] 명령어 실행 _생활코딩 (0) | 2023.01.23 |
[Docker 입문] 컨테이너 실행 및 제어 _ 생활코딩 (0) | 2023.01.23 |
[Docker 입문] 설치 및 이미지 다운 _ 생활코딩 (0) | 2023.01.23 |