하이퍼바이저(proxmox)와 컨테이너런타임플랫폼(docker)의 차이
proxmox와 docker의 역할, 용어 정리를 하려고 합니다.
proxmox는 vmware의 대체제로서, 하이퍼바이저라고 합니다. 윈도우나 리눅스같은 운영체제보다 더 먼저 설치되고 그 위에 여러 운영체제를 올릴 수 있게 만드는 것이 하이퍼바이저입니다.
반면 도커는 하이퍼바이저가 아니라 컨테이너 런타임 플랫폼입니다. 여러 OS를 설치할 수 없고, 오직 도커가 실행된 그 호스트의 OS를 그대로 사용하죠.
비유로 하자면,
하이퍼바이저는 집을 쪼개서 방마다 여러 세입자(운영체제)들에게 나눠주는 역할을 하고, 컨테이너 런타임 플랫폼은 각 방을 가진 세입자(운영체제)들이 자기 방 내에서 칸막이(컨테이너)를 쳐서 여러 앱을 실행하게 하는 것입니다.
잠깐, 여기서 의문일 수도 있는데,
첫번째, 리눅스에서 도커 안에 윈도우 OS를 올릴 수 있다는 얘기가 있습니다. 그런데 실제로 도커에 윈도우를 올리는 것처럼 말하는 도커이미지도 있기는 한데, 컨테이너 안에 windows를 설치하는게 아니라 그 밖에 Windows VM을 새로 만들고 도커는 그 만들어진 OS의 스토리지, 관리 등 wrapper역할만 하는거라고 해서 탈락. 도커가 윈도우를 품는게 아니라 래퍼 역할만 했다는 뜻입니다. https://hub.docker.com/r/dockurr/windows/
두번째, 윈도우에서는 도커 안에 리눅스 OS를 올릴 수 있습니다. 서로 다른 운영체제인데 이게 왜 되었냐 하면, 윈도우에 wsl이라는 가상머신이 있습니다. 그건 리눅스로 되어있기 때문에 wsl를 사용하는 도커에서는 리눅스 OS도 맘껏 올릴 수 있는 것입니다.