최근 교육을 통해 VM과 Docker에 대한 이론적인 설명을 들었습니다. 개인적으로 실무를 하는 것도 너무 좋았고, 모르는 부분을 내 스스로 검색을 통해 알아 간다는게 너무 좋았고 또, 뭔가 더해지는 느낌이어서 좋았습니다. 교육에서 배운 내용과 검색을 통해 추가적으로 배운 부분을 글로 쓰려합니다.
가상머신(VM : Virtual Machine)
가상머신(VM)은 물리적 서버(host)의 하드웨어를 추상화 하여 여러 개의 가상 운영체제를 실행할 수 있게 해준다. 물리적 하드웨어 시스템에 구축되어 자체 cpu, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 있고, 가상의 컴퓨터 시스템으로 작동하는 환경이다. 가상화 기술을 통해 한 개의 물리 서버를 두 개 이상의 가상 서버로 동작시킬 수 있게 되었다. 이로 인해 서버 리소스를 낭비하지 않고 효율적으로 사용할 수 있었다. 대표적으로 Virtual Box가 있습니다.
단점 : VM은 Hypervisor를 이용해 Guest Os를 생성하기 때문에 환경 자체가 상당히 무거운 단점이 있다.
도커(Docker)
먼저 Docker가 나온 이유는 VM의 단점을 보완하기 위해 나온 게 운영체제 단에서 가상화를 실해하는 container 였고, container 기술을 편리하게 사용할 수 있도록 개발된 것이 Docker이다. Docker은 쉽게 말하면 특정 서비스를 패키징하고 배포하는 데 유용한 프로그램이다. 어떠한 런타임 환경에서도 실행 가능하도록 만들어 주는 프로그램이다.
VM보다 배포하는 시간도 가상머신 보다 짧고, 성능 손실도 거의 없다!
특징 | 가상머신(VM) | Docker 컨테이너 |
운영체제 | 각 VM이 독립적인 운영 체제를 가짐 | 호스트 OS의 커널을 공유함 |
시작시간 | 느림 | 빠름 |
리소스 사용량 | 높은 자원 소모 | 경량화된 자원 사용 |
격리 수준 | 높은 수준의 격리 | 프로세스 수준의 격리 |
이식성 | 제한적 | 높은 이식성 |
사용 사례 | 완전한 독립성이 필요한 경우 | 빠르고 가벼운 애플리케이션 배포 시 |
결론
VM과 Docker는 각기 다른 방식의 가상화 기술을 제공하며, 사용 목적에 따라 선택이 달라질 수 있다. 독립적인 운영 체제와 높은 수준의 격리가 필요하다면 VM이 적합할 수 있고, 빠른 실행 속도와 효율성을 중시한다면 Docker를 선택하는 것이 좋다.
'OS > Docker' 카테고리의 다른 글
[Docker] Image 삭제 & 전체 삭제 (0) | 2024.09.23 |
---|---|
[Docker] Hub에 도커 이미지 올리기 (0) | 2024.09.23 |
[Docker]Server Login & File Save (0) | 2024.09.23 |
[Docker] Image 관리 (1) | 2024.09.23 |
[Docker] 이론 및 기초 실습 (0) | 2024.09.12 |