가상화란?

서버에서 여러개의 프로그램을 운영할 때 프로그램의 충돌을 방지하기 위해 하나의 물리적 서버 호스트에서 여러개의 서버 운영체제를 게스트로 실핼할 수 있게 해주는 것이다. 서버의 자원을 각 게스트에게 나눠주고 독립된 OS들에서 운영되는 구조이다. 이를 위해 하이퍼바이저를 사용하여 하나의 호스트 위에 여러개의 운영체제를 생성하고 관리한다.
가상머신의 단점
-> 애플리케이션의 크기에 상관없이 독립된 가상환경을 만들면 용량이 크고 자원 손실이 생긴다.
도커란? (Docker)
도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
사용하는 애플리케이션을 컨테이너로 격리하여 실행하는데, 이 컨테이너들을 다루는 도구가 도커이다.
컨테이너(Container)

컨테이너는 앱이 구동되는 환경까지 감싸서 실행할 수 있도록 하는 격리 기술이다.
즉, 구동하려는 애플리케이션을 실행할 수 있는 환경까지 감싸서, 어디서든 쉽게 실행할 수 있도록 해주는 기술이다.
컨테이너를 사용하면 프로세스 단위로 격리 환경을 만들기 때문에 용량이 줄어든다.
가상머신에 비해 용량이 작으므로 성능이 빠르고 손실도 거의 없다.