1. Docker 대신 웹 서버를 사용하는 방법
파일 시스템 내의 index.html을 읽을 수 있도록 해야 한다.
1. 웹 서버는 80번 포트에서 접속을 대기하고 있다.
2. 아래의 웹 브라우저 주소를 입력하면 80번 포트로 연결된다.
3. 대기 중인 웹 서버에 요청이 전송된다.
4. 웹 서버는 index.html 파일을 읽어 웹 브라우저에게 index.html 내부 코드를 전송한다.
2. Docker로 웹 서버 구축하기 - 이론
웹 서버를 직접 사용하려면, 운영체제에 웹 서버를 구축해야 한다. 그러나 Docker를 이용하면 훨씬 쉽게 할 수 있다.
아래의 명령어를 사용하면, 웹 서버가 컨테이너에 설치된다.
docker run httpd
이러한 컨테이너가 설치된 운영체제가 바로 Docker Host 이다. 1개의 호스트에는 여러 개의 컨테이너가 만들어질 수 있다.
컨테이너와 Host는 모두 독립적인 상태이므로 독립된 Port와 File System을 가진다.
위의 상태에는 웹 브라우저에서 웹 서버로의 접속은 불가하다. 왜냐하면 호스트와 컨테이너가 연결이 끊긴 상태이기 때문이다.
따라서, 아래의 명령어를 통해 호스트의 80번 포트와 컨테이너의 80번 포트를 연결할 수 있다. (Port Forwarding 방식)
참고로, 앞의 80은 호스트의 포트, 뒤의 80은 컨테이너의 포트를 가리킨다.
docker run -p 80:80 httpd
그렇다면, 웹 브라우저 접속 경로가 8000번 포트로 바뀌었다면 ?
아래의 명령어를 통해 포트를 변경할 수 있다.
docker run -p 8000:80 httpd
3. Docker로 웹 서버 구축하기 - 실습
먼저, docker hub에서 httpd를 pull 한다. 현재 컨테이너는 당연히 없다.
ws3라는 이름을 가진 컨테이너를 실행시켜 보자. 호스트 포트는 8081, 컨테이너 포트는 80번 포트를 사용한다.
아래의 주소로 들어가면, index.html이 뜬다.
localhost:8081/index.html
현재까지 포트 상태는 아래 그림과 같다. (아래 그림은 호스트 포트가 8080이지만, 8081 포트를 사용했다.)
'클라우드' 카테고리의 다른 글
[Kubernetes] 쿠버네티스란 무엇인가 (0) | 2024.02.22 |
---|---|
도커란 무엇인가 (0) | 2024.02.22 |
[Kubernetes] 클라우드 네이티브란 무엇인가 (0) | 2024.02.22 |
docker 기본 명령어 모음 (0) | 2024.01.02 |