회사에서 배포를 도커로 옮기고 있는데 예전엔 그냥 VM 하나 띄워서 거기 앱 올렸거든요. 근데 자꾸 컨테이너는 가볍다, VM은 무겁다 이런 얘기를 하는데 솔직히 저는 둘 다 뭔가를 격리시키는 기술이라는 점에서 똑같아 보여요.
제가 이해한 게 맞는지 모르겠는데, VM은 그 안에 운영체제가 통째로 하나 더 들어있는거고 컨테이너는 그게 없다? 이 정도로만 알고 있어요. 그럼 컨테이너는 OS 없이 어떻게 도는건가요? 결국 뭔가 리눅스 위에서 도는건 맞을텐데.
실무에서 도커 컨테이너 여러개 띄우면 예를 들어
docker run -d nginx
docker run -d nginx
docker run -d nginx
이렇게 세개 띄워도 메모리가 별로 안 먹는다는데, VM으로 nginx 세개 띄우면 확 무거워지잖아요. 이 차이가 어디서 오는건지 원리를 좀 알고 싶어요. 그리고 그럼 무조건 컨테이너가 좋은건지, VM 써야 하는 경우도 따로 있는지도 궁금합니다.