컨테이너를 배워야 하는 이유는 시대가 원해서 입니다.
엥? 무슨시대? 소녀시대? 음... 설명을 어떻게 해야할까..
우선 운영플랫폼이 어떻게 발달해왔는지를 살펴보겠습니다.
이미지 출처 : https://www.datanet.co.kr/news/articleView.html?idxno=131759
초창기 운영 플랫폼은 대용량의 bare metal시스템에 여러 application을 운영해왔습니다.
하지만 하드웨어의 가격들은 저렴해지고, 성능은 좋아지면서 더 많은 사용자들을 수용할수 있게 되었습니다.
그러면서 발전된 형태가 바로 Hypervisor 사용하여 Virtual Machine을 사용하는것입니다.
이러한 형태를 가상화 플랫폼이라 합니다. 가상화 플랫폼에서 서비스 중단없이 쉽게 scale out/up을 해야하고 쉽게 배포할수있는 플랫폼을 구성해야했고, 그렇게 등장하게 된게 container engine입니다.
이렇게 발달하게 된게 바로 시대가 원해서..라 할수 있습니다.
이러한 컨테이너가 리눅스 커널에 기능을 가지고 만들어 졌다.
리눅스 커널의 대표적인 기능 세가지를 설명하겠다.
chroot : 독립된 공간 형성
namespace : isolate 기능 지원
cgroup 필요한만큼 HW 지원
이러한 기능들을 기반으로 컨테이너를 구성합니다.
하는 일은 같다. 생긴 모양이 다르다.
일반 프로그램은 개발자가 짠 소스코드를 돌리기 위해, 운영환경에 개발환경과 동일한 조건/환경을 맞춰줘야 한다.
컨테이너는 컨테이너 안에 해당 조건/환경을 맞춰주고, 해당 프로그램/소스코드를 작동시킨다.
첫번째 개발자가 만든 그대로 어디서든 돌아간다.
왜? 컨테이너로 감쌌으니까
두번째 확장/축소가 쉽다.
왜? 컨테이너를 쌓으면 되니까
Micro Service Architecture (MSA) 와 Devops에 적합하다.
대한민국 최고의 강의가 유튜브에 무료로 올라온걸 몰랐다.
인프런에서 강의도 사고, 책도사고했지만, 해당 강의가 대한민국 최고의 강의인거 같다..(주관적인 생각)
이 강의와 책에있는 내용까지 첨삭해서 도커를 공부할려고 한다.
출처 : https://www.youtube.com/watch?v=NLUugLQ8unM&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=1