물리적인 컴퓨터 한 대에 OS를 설치하고 여러 가지 프로그램을 설치하는 방식이다.
계정을 따로 만들어도 하나의 계정에서 설치한 프로그램이 다른 계정에 영향을 끼친다.(같은 OS이기 때문)
가상 머신이란 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것을 말한다. 한 대의 컴퓨터에 여러 개의 OS를 구동할 수 있고 CPU, RAM을 물리적으로 갈아끼우는 것이 아니라 설정만으로 작업을 수행할 수 있다.
본문 하단에서 설명

중간의 하이퍼바이저는 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해주는 중간계층을 의미한다. 하이퍼바이저 위에 가상 머신을 구축하고 가상 머신에서 OS, 앱을 설치한다.
가상화 배포방식 기술을 바탕으로 선이나 하드웨어 설치없이 aws를 통해 아마존의 서버를 이용할 수 있는 것과 같이, 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 인프라, 플랫폼, 소프트웨어를 제공하는 것을 말한다.
버튼 클릭만으로 앱과 리소스를 쉽고 싸게 이용할 수 있다.
우리가 사용하는 클라우드 서비스가 오프프레미스를 말하는 것이다.
네이버 춘천 데이터센터 '각'과 같이 네트워크 선, 서버, 데이터베이스 등 모두 설치하는 것
클라우드가 단지 인프라를 제공한다. 빈 방을 제공해주는 것. 빈 방에 Node.js, mongoDB, Spring 등을 일일이 설치해주어야 한다.
플랫폼형 클라우드 서비스이다. 클라우드가 플랫폼을 제공한다. 빌트인 방이다. Node.js, mongoDB 등이 설치되어 있고 클릭만 하면 서비스를 이용할 수 있다. 모니터링(로깅), CI/CD가 제공되는 것이 강점이다.
완전한 서비스를 클라우드 서비스로부터 제공받아 사용한다.

유연하지 않고 플랫폼에 종속된다, 이식성이 낮다 -> PaaS의 Heroku의 방식으로 설치된 것이기 때문에 다른 서버로 옮길 때 설치 및 설정이 어렵다. (빌트인 가구를 뜯어서 다시 공간을 제작하여 재사용하기 번거로운 것처럼)
애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 코드와 모든 종속성을 패키징하는 소프트웨어의 표준 단위이다.
OS를 공유하기 때문에 빠르고 경량화되어 있으며 격리성이 훌륭하다. 하지만 OS에 문제가 생기면 다른 앱에도 영향을 미칠 수 있다.

가상화 배포방식에서 조금 더 발전한 컨테이너 배포방식은 몇 십 기가의 OS를 일일이 설치할 필요 없어 빠르고 가볍고, 격리되어 있어 서로 영향을 끼치지 않는다.
도커는 컨테이너 배포에 필요한 거의 모든 기능을 제공하는, 컨테이너를 만들어주는 플랫폼이다.
IaaS와 PaaS의 강점을 모두 갖춘, 유연성, 이식성, 운용효율성을 모두 높인 것이 도커이다.
도커 파일(패키지, 환경변수설정 등의 정보를 기록한 파일)을 빌드하면 도커 이미지(불변하는 어떤 상태값이다)로 변환이 되고 도커 이미지는 여러 개의 컨테이너를 만들 수 있다. 컨테이너의 상태와 무관하게 이미지는 유지된다.(클래스와 인스턴스처럼)
컨테이너가 실행되면 도커 이미지에 설정된 프로그램, 데이터 등이 실제 컴퓨팅 자원(CPU, RAM, SSD 등)과 연결된다.