Published 2022. 1. 24. 20:52
728x90
반응형

🍋 컨테이너란?

어플리케이션을 작동시키기 위해 필요한 라이브러리나 어플리케이션 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있도록 만든 것

 


🍋 컨테이너를 배우는 이유?

1️⃣ 과거 엔터프라이즈 시장에서는 대용량 Bare Metal(깡통)에 여러개의 앱을 운영하는 구조로 운영해왔음
2️⃣ 시대적으로 변화하면서(하드웨어 가격 싸지고 성능은 좋아지고, 운영해야 하는 컴퓨터 시스템은 더 대용량 요구) -> Hypervisor에 VM을 만들고 그 위에서 앱을 돌리는 방식으로 진행
3️⃣ 클라이언트 요구에 따라 애플리케이션을 Scale In, Out을 자유롭게 할 수 있는 요구사항이 필요로 하게 됨(서비스 중단없이) 그래서 Bare Metal에 OS를 올리고 거기에 컨테이너 엔진을 올림
4️⃣ 컨테이너로 운영되는 앱은 용량이 적음(실제 앱과 최소 환경만 들어가기 때문)
5️⃣ 각 앱은 isolate됨. isolated된 공간 안에서 적은 용량의 프로그램이 실행되기 때문에 확장성이 좋고, 배포가 쉬움

 


🍋 리눅스에서 사용해야 하는 이유?

리눅스 커널 기능을 사용해야 하기 때문
💡 리눅스 기능
1️⃣ chroot : 독립된 공간 형성
2️⃣ namespace : isolate 기능 지원
3️⃣ cgroup : 필요한 만큼 하드웨어(HW) 지원
📌윈도우나 맥은 👉 Hypervisor활성화 시켜서 리눅스 커널 기능을 지원해야 함

 


🍋 그냥 프로그램과 컨테이너의 차이점?

하는 일은 같고 생긴 모양이 다름


🍋 컨테이너 사용 이유?

개발자가 만든 그대로 어디서든 돌아감
확장/축소가 쉬움
Micro Service Architecture(MSA), DevOps환경에 적합


가벼움
운영체제 커널을 공유
시작이 훨씬 빠름
운영체제 전체 부팅보다 메모리를 적게 차지함

반응형
복사했습니다!