도커란?
'컨테이너 뭐시기'에서 정확히 뭔지 알아볼까요.
도커 한 줄 소개
프로세스를 격리시켜서 독립적으로 작동할 수 있게 해요.
격리시킨다는 것은?
컨테이너라는 공간에 프로그램의 라이브러리 의존, 다른 프로그램을 담아서 실행을 보장해요.
어떤 의미에서는 컨테이너 안에서 '환경이 온전히' 실행.
따라서 배포와 관리가 쉽다는 장점이 있어요.
프로그램 실행 환경을 임의로 변경되지 않게 보장하가 위함도 있고
프로그램간 라이브러리, 디렉토리의 공유로 발생하는 문제도 해결할 수 있죠.
도커 특징
- 이미지로 컨테이너를 생성.
- CLI(Command Line Interface) 환경
- 리눅스 운영체제 기반
도커와 리눅스
이미지에 매우 경량화된 리눅스 계열 OS가 포함되어요.
linux kernel이 들어있지 않은 OS이기에 가벼워요. Ex> alpine
리눅스용 프로그램만을 컨테이너에서 동작시킬 수 있어요.
하지만 docker desktop을 이용하면 윈도우, macOS에서도 동작할 수 있어요.
그렇다고 리눅스 기반이 아닌 것으로 되는 건 아니예요.
vs Virtual Machine
자원의 효율성 차이
VM은 하드웨어를 가상으로 격리시킨 소프트웨어예요. 그래서 Host와 다른 운영체제를 설치할 수 있어요.
그럼 리눅스를 사용하지 않아서 더 좋을 거 같지만 가상화된 공간마다 운영체제가 필요해서 무겁다는 단점이 있죠.
따라서 host 커널을 사용하는 것처럼 격리에 필요한 최소한의 것으로 구현된 도커가 가볍고 성능에 우위에 있다고 할 수 있죠.
도커 장점
- 하나의 물리 서버 위에 여러 기능 서버를 둘 수 있어요.
- 컨테이너 생명주기에 따라 생성, 삭제가 간편하고 빨라요.
- 컨테이너 이동이 편해요.
'컴퓨터과학' 카테고리의 다른 글
OAuth 동작 원리 (0) | 2023.07.07 |
---|---|
OAuth, 간단하게 알아보자 (0) | 2023.07.07 |
HTTP 헤더란? (0) | 2023.06.11 |
API 요청에서 path, query, body의 차이점 (0) | 2023.06.10 |
HTTP status code는 각각 언제 사용될까? (0) | 2023.06.10 |