도커
- 컨테이너 기반 가상화 도구
- 어플리케이션을 컨테이너 단위로 격리하려 실행하고 배포하는 기술
가상화 기술 (Virtual Macine)
하나의 물리적인 컴퓨터 자원 (하드웨어)을 가상적으로 분할해 여러 개의 가상 컴퓨터 환경을 만들어 내는 기술을 말한다.
고성능 서버를 더 안정적으로 효율적으로 사용하기 위해 등장했다.
하이퍼바이저(Hypervisor)
가상 머신을 생성하고 구동하는 소프트웨어이며 OS에 자원을 할당 및 조율한다.
호스트 OS 위에서 VM을 가상화 시켜주는 하이퍼바이저가 존재하며, 이 하이퍼바이저를 사용해 원하는 운영체제로 게스트 OS를 올려 여러가지 VM을 만들 수 있다.
하지만 이렇게 게스트 OS를 가상화하여 사용하는 방식은 각각의 독립적인 OS를 실행시켜야 하기 때문에 부팅 시간이 길어 무겁게 실행되는 단점이 존재했다.
이를 개선하기 위해 컨테이너 기술이 등장했다.
컨테이너 기술(Container)
호스트 OS를 가상화하는 것이 아닌, 운영체제 수준의 가상화 기술로 하나의 리눅스 시스템에서 리눅스 커널을 공유함과 동시에 프로세스를 격리된 환경에서 실행한다. 따라서 하이퍼바이저 방식보다 더 빠르다.
컨테이너 가상화를 통해 하나의 서버에서 다수의 컨테이너를 실행하면 각 각의 컨테이너끼리 서로 영향을 끼치지 않고 독립적으로 실행된다.
도커는 컨테이너 기술을 사용하며, 도커에서는 도커 엔진이 컨테이너 엔진이라고 볼 수 있다.
Virtual Machine 와 Container 차이
공통점
- 기본 하드웨어에서 격리된 환경 내에서 애플리케이션을 배치하는 방법이다
차이점
- 시스템 구조적으로 VM은 각각의 OS를 띄어야하는 구조이고, 컨테이너는 OS를 공유하는 구조이다.
- 컨테이너는 하이퍼바이저와 게스트 OS가 불필요하다.
- 컨테이너는 Guest OS의 이미지를 사용하지 않기 때문에 더 가볍다
- 컨테이너 방식은 호스트 OS위의 어플레케이션의 이미지를 배포하면 되지만, VM은 어플리케이션을 실행하기 위해 VM을 띄우고 자원을 할당한 후 , Guest OS를 부팅하므로 더 무겁게 실행된다.
'CS > 서버' 카테고리의 다른 글
Docker로 mysql 설치 및 접속하기 (0) | 2023.05.23 |
---|---|
Dockerfile 이용해서 이미지 만들고, 도커 허브에 배포하기 (0) | 2023.05.23 |
AWS - EC2, Elastic Beanstalk, Fargate, ECR, Lambda, ECS (1) | 2023.05.08 |
AWS - VPC, NAT,ELB, S3, CloudFront (0) | 2023.05.08 |
도커(docker) (0) | 2023.04.03 |