Computer Science/Programming

[Docker] VM과 Container

by Donghwan 2021. 9. 25.

Virtual Machine

Host OS위에 Guest OS를 가상화하는 방식입니다. 사용법이 간단하지만 각 가상 머신마다 전용 운영 체제가 있기때문에 가상머신에 구축된 애플리케이션을 실행할 때 메모리 사용량이 필요 이상으로 많아져 가상 머신이 호스트에 필요한 리소스를 모두 사용할 수 있습니다. 가상머신이 Host하는 애플리케이션과 함께 전체 운영체제와 관련 도구도 포함하기 때문입니다. 또한 운영 체제를 업데이트하거나 패치할 경우 기존 컴퓨터를 하나씩 업데이트해야 하고 각 게스트 OS를 개별적으로 패치해야 합니다. 하지만 Host OS와 Guest OS가 완벽하게 격리하기 때문에 강력한 보안 경계가 필요할 때 유용합니다.

 

Container

VM과 같이 가상화하는 방식은 무겁고 성능 문제가 발생하기에 프로세스를 격리하는 방법이 등장했습니다. 가상화와 달리 컨테이너화된 애플리케이션은 완전한 가상 머신보다 리소스를 더 적게 사용하고 호스트 메모리에 가해지는 부담을 줄일 수 있도록 운영체제 환경(커널)을 공유합니다. 컨테이너는 상대적으로 가볍습니다. 컨테이너화된 애플리케이션을 실행하는 데 필요한 라이브러리와 도구만 포함하기 때문에 가상머신보다 더 작고 더 빨리 시작됩니다. 또 컨테이너 호스트(컨테이너를 호스트하는 컴퓨터)의 운영 체제만 업데이트하면 되기 때문에 따라서 유지관리가 매우 간소화됩니다. 또한 Docker를 사용하여 개별 컨테이너를 배포합니다.

 


참고자료

728x90
반응형

댓글