[그림 출처 https://zdnet.co.kr/view/?no=20231005094858]
가상머신을 만들어 그 위에 필요한 애플리케이션을 올려서 사용해왔다. 현재에는 애플리케이션 서비스를 요구하는 클라이언트의 요구에 따라 자유롭게 확장 축소할 수 있는 이러한 애플리케이션 요구들이 필요해졌다. 기존에 있던 가상 환경에서는 약간의 어려움이 있어 컨테이너화시켜 사용하고있다. 도커(Docker)는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 컨테이너 플랫폼을 운영해서 컨테이너 애플리케이션을 동작시키는 것이다.

리눅스 커널 기능을 써야 하니까
1.chroot -> 독립된 공간 형성
2.namespace -> 지원 6가지 독립된 하나의 컨테이어와 컨테이너가 불리될 수 있는 isolate 기능
3.cgroup -> 필요한만큼 HW 지원
그럼 윈도우즈랑 mac os에서는 못 돌리나요?
윈도우즈나 mac os에서는 커널이 없으니 하이퍼바이저를 활성화시켜서 그 위에다가 컨테이너를 돌려줘야 합니다.
개발자가 만든 그대로 어디서든 돌아가!
확장/축소가 쉽고 MSA, Devops에 적합해!
따배도 유튜브 강의!!