컨테이너란
컨테이너란?
도커 컨테이너는 마치 화물선에 적재되는 컨테이너와 유사한 개념입니다. 이 컨테이너 안에는 애플리케이션과 해당 애플리케이션을 실행할 데 필요한 모든 구성 요소가 함께 담겨 있습니다.
그림 1과 같이 도커는 가상의 리소스를 만들어낸 것을 컨테이너라고 합니다. 각 컨테이너는 내부의 정보에 접근할 수 있지만 외부의 정보는 알 수 없는 격리된 상태에 있습니다. 더불어, 여러 개의 컨테이너를 생성하여 각각을 독립적인 환경으로 구성할 수 있습니다. 이로써 도커는 각 컨테이너가 자체적인 실행 환경을 갖고 있는 가상화 기술을 제공하며, 애플리케이션을 효율적으로 관리하고 배포할 수 있게 됩니다.
그림 2처럼 도커를 통해 한 컴퓨터에서 여러 개의 컨테이너를 생성하여 각 컨테이너가 독립적으로 정보를 가지고 있는 구조는 격리와 밀집이라는 상반된 요구 사항을 동시에 충족할 수 있는 중요한 시스템 아키텍처입니다.
여기서 "밀집"은 CPU와 메모리가 허용하는 한 많은 수의 애플리케이션을 실행하는 것을 의미합니다. 그러나 이러한 방식은 컴퓨터의 성능에 따라 제약이 따를 수 있습니다. 이러한것을 해결하기 위해서 가상머신을 도입해서 사용하면됩니다.
그림 3처럼 가상 머신을 사용해서 사용하면 각각의 컨테이너는 호스트 컴퓨터의 운영체제를 공유하므로 필요한 리소스가 크게 경함된다. 그만큼 실행되는 속도가 빨리진다. 밀집과 격리가 동시에 이룬다. 이것이 도커의 특징인 효율성이다.
도커 컴포넌트
- 도커 엔진의 기능에 접근하려면 도커 API를 통해서 접근해야한다.
- 도커 엔진(Docekr Engine) : 도커의 관리 기능을 맡는 컴포넌트다. 항시 동작하는 백그라운드 프로세스다.
- 이미지 캐시 : 이미지를 저장한다. 전에 받은 이미지가 있으면 로컬에 보관한다.
컴포넌트는 도커의 실행원리와 밀접한 관련이 있다. 각 컴포넌트는 도커의 다양한 측면에서 역활을 담당하며, 함께 동작하여 컨테이너화된 애플리케이션의 생성, 실행, 관리를 가능하게하며, 다양한 컴포넌트들이 상호작용하여 도커는 효율적이고 결리된 환걍에서 컨테이너화된 애플리케이션을 실행하고 관리할수 있다.
참고자료
'Devops > 도커' 카테고리의 다른 글
[Docker] 도커로 만든 MySQL을 MySQL Workbench로 연동하는 방법 및 볼륨 사용하기 (1) | 2024.01.31 |
---|---|
[Docker] nginx 설정파일 커스텀 해보기 (1) | 2024.01.31 |
[Docker] Docker파일 작성방법 및 실행해보기 (1) | 2024.01.31 |
[Docker] 헬스체크와 디펜던시 체크란? (1) | 2024.01.27 |
[Docker] SpringBoot만든 jar파일 배포하기(Mysql 연동) (6) | 2024.01.17 |