기본개념
서버의 기본 개념
- 서버는 하드웨어와 소프트웨어를 포함하는 시스템이다.
- 클라이언트 서버관계는 요청과 응답을 하는 관계이다
- 애플리케이션 서버는 사용자에게 서비스를 제공하는 것이 목적인 서버이다.
서버의 유형
- 주요종류로는 파일서버, DB서버, 웹서버, WAS 등이 있다.
서버 구동 방식
- 베어메탈은 물리 서버에 직접 OS를 설치하는 방식이다.
- 하이퍼바이저 방식은 가상화 기술을 활용하는 방식이다.
- 컨테이너는 경량화된 가상화 기술을 사용하는 방식이다.
하이퍼바이저 기술
- 호스트 OS는 물리적 하드웨어와 직접 연결된 OS를 가리킨다.
- 게스트 OS는 가상화된 운영체제를 가리킨다.
- 시스템 콜을 통해 리소스를 관리한다. 대표적인 도구로는 VirtualBox, VMware, RedHat이 있다.
컨테이너 가상화
- 컨테이너 가상화는 하이퍼바이저보다 가볍과 빠른 가상화 기술이다.
- 컨테이너는 LXC (Linux Containers) 기술에서 시작되었다.
컨테이너의 특징
- 호스트 OS의 커널을 공유한다. 하이퍼바이저는 호스트 OS와 게스트 OS의 커널이 독립적으로 존재하며 하이퍼바이저가 두 커널간의 통신을 중계하여 처리단계가 추가됨에 따라 오버헤드가 컸다.
- 컨테이너는 호스트 OS의 커널을 직접 사용하므로 중간 단계가 없어 오버헤드가 적다.
도커 동작 방식
- 도커는 자체적으로 갖고 있는 컨테이너 엔진과 컨테이너 런타임으로 구성되어 있다.
컨테이너 엔진
- 컨테이너 엔진은 사용자의 요청을 받아서 컨테이너를 관리해주는 역할을 수행한다.
컨테이너 런타임
- 직접 커널과 통신하면서 실제로 격리된 공간을 만드는 역할을 수행한다.
도커의 아키텍쳐
- 도커는 클라이언트 서버 구조이다. 클라이언트는 사용자의 명령을 전달해주고, 실제로 컨테이너를 관리해주는 도커 데몬이있다.
과정
- 사용자가 명령어를 실행한다.
- 클라이언트는 사용자의 명령을 도커데몬에게 전달한다.
- 도커 데몬은 컨테이너 관리를 진행한다 ( 데몬이라는 이름이 붙은 소프트웨어는 서버에서 지속적으로 실행되는 소프트웨어를 일컫는 말이다 )
- 즉 클라이언트에서 요청할 때 URL도 입력하고 파라미터도 전달하고 쿼리도 전달하여 도커데몬에게 API요청을 해야하지만 docker CLI명령을 통해 API양식을 대신 작성하여 동작을 수행케한다.
참고: https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%89%AC%EC%9A%B4-%EB%8F%84%EC%BB%A4