컨테이너의 이해

2021. 5. 25. 09:38Container/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
반응형