가상머신이
호스트OS 위에서 하이퍼바이저 플랫폼에 여러개의 가상머신을 올리고 가상머신 안에 게스트OS가 깔리는 방식인데요
그래서 가상머신은 하드웨어를 추상화 시켜야 하고 그 위에서는 항상 OS가 올라가야해요
근데 도커는 애플리케이션 실행환경만 컨테이너로 묶여있고 호스트OS의 시스템콜을 이용해요 가상머신 같은 하드웨어 추상화 계층이 없어요
호스트OS 위에서 하이퍼바이저 플랫폼에 여러개의 가상머신을 올리고 가상머신 안에 게스트OS가 깔리는 방식인데요
그래서 가상머신은 하드웨어를 추상화 시켜야 하고 그 위에서는 항상 OS가 올라가야해요
근데 도커는 애플리케이션 실행환경만 컨테이너로 묶여있고 호스트OS의 시스템콜을 이용해요 가상머신 같은 하드웨어 추상화 계층이 없어요
어떤점이 기존의 가상머신보다 좋길래 유행하는거죠
아 그런거구나
기존의 가상머신은 가상머신 개개의 것이 하나의 컴퓨터에요
추상화 단계를 한단계 줄인거란 것임? 물리장치 - 실 OS - 가상 OS -웹환경이게 기존이라면, 도커는 물리장치 - 실 OS - 도커 컨테이너
이런건가용
그렇기 때문에 가상머신은 하드웨어 추상화 계층을 가지게 되고 느려요 그리고 위에 쓴 것처럼 각 가상머신안에는 각각의 게스트OS가 필요해요
근데 도커는 리눅스 커널 기술을 이용해서 어플리케이션의 실행환경만이 묶여 있으니 그냥 내가 쓰고 있는 OS위에서 배포가 가능한 거지요
자바에 비유를 해 드리자면...
아하
웹앱을 빌드하면 소스코드와 라이브러리 의존성등을 빌드해서 WAR로 묶고 그걸 서버에 올리겠죠 근데 그럼 WAR파일에 맞는 서버는 매번 다시 잡아줘야죠
가상머신이라면 가상머신 이미지를 떠서 디비 서버 애플리케이션을 한 번에 말아올릴 수 있겠지만 가상머신이 추상화된데다 가상머신 이미지는 OS가 포함되서 드럽게 느리죠
도커를 쓴다면 서버와 애플리케이션을 컨테이너화 시켜서 올릴 수 있죠 OS는 제가 쓰는 걸 그냥 쓰면 되고여
이 환경이 AWS나 애저 같은 OS와 하드웨어가 클라우드로 유연하게 생성되는 환경과 결합한다면?
적은 용량으로 빠른 속도로 애플리케이션의 프로비저닝과 배포가 가능하죠
멋지네요
빨리해보고싶다
아무래도 제가 인프라인이다보니 저는 자바나 자바스크립트나 파이썬이나 고나 이런 언어적 부분에도 개인적 흥미는 있지만 업무적으로는 이런 환경이나 미들웨어 부분에 관심이 많이 가요
ㅇㅇ님의 대답에 답변을 드리자면 실OS위에 하이퍼바이저가 하나 더 들어가겠죠 어떻게 보면 물리장치가 지원하는 것이긴하나 어쨌거나 하이퍼바이저도 하나의 계층으로 보는게 맞겠고 그 위에 가상머신과 가상OS까지 올라가는 거죠
dz//되서->돼서 (되어 = 돼임) [리듬 맞춤법 봇♬]