← 질문 목록
#272깊이 0
컨테이너는 가상 머신과 무엇이 다른가?
커널을 공유한다. 가상 머신은 게스트 운영체제를 통째로 올리지만 컨테이너는 호스트 커널 위에서 프로세스로 돈다.
- 컨테이너앱과 라이브러리만. 커널은 호스트 것을 쓴다
- 컨테이너 런타임격리와 자원 제한을 건다
- 호스트 커널하나를 모두가 나눠 쓴다
격리의 뼈대는 커널 기능 둘이다. 네임스페이스가 보이는 것을 가르고 cgroup이 쓸 수 있는 양을 정한다. seccomp이나 SELinux 같은 것이 그 위에 더 얹힌다.
그래서 뜨는 것이 빠르고 이미지가 작다. 대신 커널을 나눠 쓰므로 탈출로 이어지는 커널 취약점이 나오면 격리가 뚫린다. 다른 커널이 필요한 워크로드도 못 올린다.
가상 머신과 고르는 문제가 아니다. 가상 머신 위에 컨테이너를 올린다.