728x90
도커와 VM(가상 머신)의 차이에 대해 알아보자
도커 (Docker)
도커는 컨테이너 기술을 사용하여 소프트웨어 애플리케이션을 격리된 환경에서 실행할 수 있게 하는 플랫폼이다.
도커 컨테이너는 애플리케이션과 그 종속성을 하나의 패키지로 묶어서, 어디서든 동일하게 실행할 수 있도록 한다.
가상머신 (Virtual Machine, VM)
가상머신은 물리적인 하드웨어 위에서 여러 개의 독립된 운영체제를 실행할 수 있게 하는 기술이다.
VM은 하이퍼바이저(가상화 소프트웨어)를 사용하여 물리적 자원을 분할하고, 각 VM이 독립된 시스템처럼 작동하도록 한다.
하이퍼 바이저에 대한 설명은 하단 링크에 들어가 살펴보자
https://jspark33.tistory.com/116
아래의 그림은 도커와 VM의 작동 방식을 나타낸 그림이다.
아래의 그림은 도커와 VM의 작동 방식을 나타낸 그림이다.
차이점 | 도커 | 가상 기기 |
운영 체제 | Docker는 컨테이너 기반 모델로, 컨테이너는 모든 운영 체제에서 애플리케이션을 실행하는 데 사용되는 소프트웨어 패키지이다. Docker에서는 컨테이너가 호스트 OS 커널을 공유. 여기에서는 여러 워크로드가 단일 OS에서 실행될 수 있다. |
컨테이너 기반 모델이 아니며 OS의 커널 공간과 함께 사용자 공간을 사용. 호스트 커널을 공유하지 않음 각 작업에는 완전한 OS 또는 하이퍼바이저가 필요. |
성능 | Docker 컨테이너는 하이퍼바이저와 같은 추가 소프트웨어 없이 동일한 운영 체제를 사용하므로 고성능을 제공합. Docker 컨테이너는 빠르게 시작되어 부팅 시간을 단축할 수 있음 |
VM은 별도의 OS를 사용하므로 더 많은 리소스가 사용됨. 가상 머신이 빠르게 시작되지 않아 성능이 저하 |
휴대성 | 도커 컨테이너를 사용하면 사용자는 애플리케이션을 생성하여 컨테이너 이미지에 저장할 수 있다. 그런 다음 모든 호스트 환경에서 실행할 수 있음. Docker 컨테이너는 VM보다 작기 때문에 호스트의 파일 시스템에서 파일을 전송하는 과정이 더 쉽다. |
VM에는 중앙 허브가 없으며 데이터를 저장하는 데 더 많은 메모리 공간이 필요. 파일을 전송하는 동안 VM은 OS와 해당 종속성의 사본을 보유해야 하므로 이미지 크기가 증가하고 데이터를 공유하는 지루한 과정. |
속도 | Docker 컨테이너의 애플리케이션은 OS가 이미 실행 중이므로 지연 없이 시작. 이러한 컨테이너는 기본적으로 애플리케이션 배포 프로세스에서 시간을 절약하기 위해 설계되었음. |
컨테이너가 애플리케이션을 실행하는 데 걸리는 시간보다 훨씬 더 오랜 시간이 소모. 단일 애플리케이션을 배포하려면 가상 머신에서 전체 OS를 시작해야 하며 이로 인해 전체 부팅 프로세스가 발생. |
출처 : https://www.simplilearn.com/tutorials/docker-tutorial/docker-vs-virtual-machine
728x90
'CS' 카테고리의 다른 글
컴파일러 VS 인터프리터 (0) | 2024.11.27 |
---|---|
RISC vs CISC: 컴퓨터 아키텍처의 두 가지 접근법 (0) | 2024.08.23 |
정적 배열(Static Arrays)과 동적 배열(Dynamic Arrays) (0) | 2024.07.12 |
하이퍼바이저(Hypervisor) (0) | 2024.07.07 |
웹어셈블리란? (1) | 2024.05.22 |