컨테이너를 '왜' 배워야하는지
애플리케이션의 요구에 따라 자유롭게 확장, 축소(확장성)할 수 있도록
서비스 중단 없이 지속적인 운영될 수 있도록
실제 애플리케이션 운영에 필요한 자원만 들어있어서 container는 확장성, 배포가 좋고 가볍다.
또한 독립적으로 동작되도록 한다.
왜 리눅스에서 돌려지는지?
-> 리눅스 커널의 기능을 사용해야하기 때문에
chroot : 독립된 공간 형성
namespace : 마치 하나의 독립 시스템인것 처럼 6가지 독립된 기능을 지원
cgroup : 필요한 만큼의 HW를 지원
이런 kernel의 기능이 컨테이너의 기반 기술이 된다.
윈도우, 맥은 hypervisor를 활성화시켜 도커를 이용해 컨테이너를 실행, 동작시킬 수 있다.
일반 프로그램과 컨테이너의 차이
하는 일은 같지만,
보다 가볍고 확장성, 배포가 쉽고 따라서 MSA와 DevOps에 적합한 기술이기 때문에 컨테이너의 사용이 요구된다.
* DevOps - 개발자가 개발부터 운영환경까지 자동화 해주는 것
컨테이너에는 애플리케이션과 함께 해당 애플리케이션이 동작할 수 있도록 환경설정 파일(언어 플랫폼, 라이브러리 등)이 함께 들어간다.
개발자가 만든 개발환경과 실제 운영환경이 달라도 컨테이너 안에 애플리케이션의 환경설정이 함께 들어있으므로 어디서든 언제나 동작시킬 수 있는, 환경에 구애받지 않는다는 장점이 있다.
예를 들어 베어메탈, 가상머신 환경에서 똑같은 애플리케이션을 여러개 사용하고 싶을 때, 복제를 한다면 똑같이 OS도 복제되어 공간을 많이 차지하지만, 컨테이너와 같은 경우에는 단순히 docker, 컨테이너 플랫폼 위에 애플리케이션만 복제해주면 된다.
애플리케이션의 요구에 따라 자유롭게 확장, 축소할 수 있도록
서비스 중단 없이 지속적인 운영될 수 있도록
실제 애플리케이션 운영에 필요한 자원만 들어있어서 container는 확장성, 배포가 좋고 가볍다.
또한 독립적으로 동작되도록 하기에 서로의 운영에 간섭하지 않을 수 있다.
'docker' 카테고리의 다른 글
Oracle21c 컨테이너 띄워 사용하기 (Mac M1) (0) | 2024.06.02 |
---|---|
[따배도] 컨테이너 이미지? (1) | 2023.02.11 |