컨테이너의 이해
2021. 5. 25. 09:38ㆍContainer/kubernetes
728x90
반응형
1. 컨테이너를 사용하는 이유
1) 인프라 사용률 향상
- 하나의 물리 서버나 가상 서버위에서 여러개의 컨테이너를 돌릴수 있다.
- CPU와 메모리 사용율을 높여 하드웨어를 효율적으로 이용 할 수 있다.
2) 빠른 기동 시간
- 컨테이너의 기동 시간은 가상 서버나 물리 서버 기동 시간보다 훨씬 빠르다.
- 운영체제, 애플리케이션, 미들웨어 등 다양한 이미지를 쉽게 얻을 수 있다.
- 설치 작업이나 설정 작업이 줄어든다.
- 네트워크,볼륨(외부 저장)을 소프트웨어 정의 오브젝트로 작성 할 수 있다.
3)불변 실행 환경
- 애플리케이션 실행에 필요한 소프트웨어를 모두 포함하여 컨테이너를 작성 할 수 있다.
- 컨테이너를 조합하여 시스템을 구상함으로써 특정 서버 환경에 대한 종속성을 배제할 수 있다.
- 개발 환경과 운영 환경의 차이를 줄일 수 있다.
2. 가상서버와 컨테이너의 차이점
1) 가상서버
- 가상화 소프트 웨어를 사용하여 하드웨어를 공유하는 형태로, 마치 한대의 전용 서버가 있는 것처럼 이용 할 수 있게 해준다.
- 가상와 소프트웨어를 하이퍼 바이저라하며 VMware,Xen,KVM등 다양한 제품등이 있다.
2)컨테이너
- 하나의 리눅스 프로세서가 마치 전용 서버에서 동작하고 있는 것 같은 분리상태를 만들어낸다.
- 리눅스의 커널 네임스페이스와 컨트롤 그룹 ( cgroup )이라는 기술을 기반으로 한다.

3. 도커의 아키텍쳐
1) 도커 데몬
- 클라이언트인 도커 커맨드의 명령을 받아드려서 도커 오브젝트인 이미지, 컨테이너, 볼륨,네트워크등을 관리
- 네트워커 너머 있는 원격 클라이언트로부터 요청도 받는것이 가능하다.
2) 도커 클라이언트
- 도커 커맨드를 사용하며 API를 사용하여 도커데몬에 요청을 보낸다.
- 자주 사용하는 3가지
| docker build | 새로운 이미지 만들 때 사용 |
| docker pull | Registry에서 이미지 로컬에 다운로드 할때 사용 |
| docker run | 이미지를 바탕으로 컨테이너를 실행 |
3) 이미지
- 읽기 전용인 컨테이너의 템플릿
- 컨테이너를 기동하기 위한 실행 파일과 설정파일의 묶음
- 컨테이너를 실행하면 이미지에 담긴 미들웨어나 에플리케이션 설정에 따라 기동한다.
4) 컨테이너
- 하나의 프로세스이며 리눅스의 네임스페이스나 컨트롤 그룹(Cgroup)을 통해 다른 프로세스들과 완전히 분리되어 실행되는 프로세스
- 정지상태로도 관리 되기때문에 보다 명확하게 표현하자면 ' 실행가능한 이미지의 인스턴스 ' 라고 할 수 있다.
5) 도커 레지스트리
- 컨테이너 이미지가 보관 되는곳이며, 도커는 기본으로 도커허브에 이미지를 찾도록 되어 있다.
- 레지스트리와 리포지터리는 이름이 비슷하여 햇갈리기 쉽다. 레지스트리는 리포지터리를 여러 개 가지를 보관서비스이고 리포지터리는 하나의 이미지에 대해 태그를 사용하여 다양한 출시 버전을 함께 보관하는 곳이다.
참고 : 15단계로 배우는 도커와 쿠버네티스를 참고하였습니다.
728x90
반응형
'Container > kubernetes' 카테고리의 다른 글
| 쿠버네티스 ( kubernetes ) - 컨트롤러( Controller ) (0) | 2021.05.25 |
|---|---|
| 쿠버네티스 ( kubernetes ) - 서비스( Service )와 클러스터 네트워크 (0) | 2021.05.25 |
| 쿠버네티스 ( kubernetes ) - 파드( Pod ) (0) | 2021.05.25 |
| 쿠버네티스(kubernetes)의 기본개념에 관하여... (0) | 2021.05.25 |
| 쿠버네티스란? (0) | 2021.05.25 |