24.08.07 11:33 작성
·
124
1
안녕하세요. 좋은강의 많은 도움을 받고있어 항상 감사드립니다.
"아무나 모르는 컨테이너 기술의 장점" 섹션을 수강하던중 아래와같은 두가지 궁금한 부분이 있어 질문드립니다.
VM과 Container를 비교설명 해주셨는데요. Container 설명 중에 개발자 환경이 Windows Host에 Container 환경을 구성하여 개발환경과 같은 linux명령, 환경을 동일하게 시험해 볼 수 있다고 하셨습니다. 이때 host os에 커널을 공유하는게 Container기술이라고 이해하고 있었는데, Windows Host에 linux 컨테이너 이미지가 가능한 건가요?
컨테이너가 VM에 비해 이미지화/dockerhub를 통한 배포로 인해 동일한 환경을 배포함에 있어서 장점이 있다고 설명해주셨는데요. sprint 1,2 실습환경을 제공해 주신것처럼, vagrant 와 packer를 이용하면 VM도 Container와 비슷한 조건이지 않은가요?
답변 2
0
0
2024. 08. 08. 11:36
안녕하세요! 좋은 질문 감사합니다.
먼저 첫 번째 질문에 답변을 드리면, 컨테이너 기술은 기본적으로 호스트 OS의 커널을 공유해서 가상화 환경을 제공합니다. 따라서 Windows에서 Linux 컨테이너를 실행하는 것은 원칙적으로 불가능해 보일 수 있습니다. 하지만 Docker는 이 문제를 해결하기 위해 몇 가지 기술을 제공해요.
Docker Desktop와 WSL2라는 건데요. 결국 윈도우에서 리눅스 커널을 실행할 수 있도록 지원해주는 기술이죠 ㅎ
다음으로 두 번째 질문은 요점에 대해서 제가 해석이 잘 안되는 데, 부가 설명해주시면 감사하겠습니다. VM도 Container와 비슷한 조건이라는 게 어떤 내용을 말씀하시는 건지?
2024. 08. 09. 14:15
아 이해했습니다.
사용자 측면에서 VM도 스크립트를 잘 만들어 놓고 Vagrant로 생성한다면 컨테이너 환경을 구성하는 것과 작업량은 비슷해 집니다. 아마 수강생 분께서는 강의에서 일반적인 컨테이너 사용과 비효율적으로 사용하는 VM을 비교했다고 볼 수 있을 것 같아요.
하지만 현업에서 많이 들 그렇게 사용하고 있긴 합니다. 기본 환경 구성이 있는 VM을 바탕으로 여러 가상서버를 생성한 이후, 해당 서버에 들어갈 App에 필요 한 라이브러들을 추가로 설치하죠.
그리고 쿠버네티스 처럼 VM도 오케스트레이션 해주는 Openstack과 같은 솔루션이 있지만, 어려워서 사용하기 힘들고요. Vagrant의 경우 한대 한대 서버르 생성하기 위한 용도이지 여러 VM들을 생성하고 관리하는 용도는 아니거든요.
2024. 08. 08. 15:01
1번은 답변이 된것같습니다. 감사합니다.
2번에 대해서는, 컨테이너와 대비해서 VM은 "작업 빈도가 높고 작업을 해야한는 서버의 양도 많음"이라고 설명해주셨는데요. 컨테이너는 그렇지 않은 이유가 컨테이너 이미지를 잘 만들어 repository에 올려놓으면 필요할때 언제든지 pull해서 환경을 구성할 수 있다는 말씀으로 이해했습니다. 이때 VM도 packer로 image를 생성하여두면, 필요할때 vagrant로 배포해서 사용할 수 있는만큼, 작업량과 빈도부분에서 컨테이너와 엄청 대비되는 차이가 있을것 같지 않아서요.