(Cloud) 컨테이너 란?

업데이트:
1 분 소요

컨테이너 (Container)

  • 컨테이너는 클라우드 가상화 기술로 Docker나 Kubernetes와 연관되어 있다.
  • 컨테이너라는 개념은 최근에 나온건 아니고 1998 ~ 2000년대 중반까지 정리되어 오픈소스화 됬던 개념

1. 컨테이너란?

  • 논리적인 공간(컨테이너)을 만들어 다양한 어플리케이션을 설치해 하나의 서버처럼 사용할 수 있는 패키지
  • 물류에서 사용하는 컨테이너 처럼 하나의 공간에 다양한 물건을 담아 옮기고, 각 서버에서 컨테이너를 구동해
    그 안에 존재하는 어플리케이션을 별도의 설정 없이 쉽게 사용할 수 있다.

2. 사용 이유

  • 개발을 하기 위해 하나의 환경을 구축하기 위해선 많은 수고가 들어간다.
  먼저 서버가 있어야 되고, OS를 구축해야하고, 개발을 위한 네트워크 통신 포트 구성과 개발 툴들을 설치
  , 서로의 연동 환경 구성 등등.. 많은 설정이 필요하고, 또 호환성 등을 생각해서 툴의 버전과 OS버전등을
  일일히 맞춰서 설치하는 일이 필요하다.
  • 이런 반복적이고 불편한 세팅을 한번 해놓으면 , 쉽게 그설정을 배포할수 있다면 편할 것이다.
  • 그래서 컨테이너를 사용하면 환경을 구축한 뒤, 다른 서버로 배포하면 이런 번거로운 부분을 최소화 할 수 있다.
  • 특히 컨테이너는 배포에 최적화 되어있고, 호스트의 OS가 달라도 어디서든 구동 시킬수 있는 장점이 있다.

3. 가상 머신과 컨테이너

  • 이 둘의 가장 큰 차이점은 OS가상화 이다.

1) 가상 머신

  • 가상머신은 사용하려면 처음에 OS 설치 부터 해야한다.
  • 윈도우면 windows server 2012의 iso를 다운받아야 하고 별도로 메모리, 하드 용량을 설정한 다음에
    OS 설치를 진행해야 한다.
  • 리눅스면 ubuntu같은 iso을 다운받고 일일히 실제 PC처럼 별도로 세팅을 해줘야 한다.
  • 이유 : 호스트 OS와 다르게 독립적으로 OS를 구축해서 동작하기 때문에

2) 컨테이너

  • 경량화에 초점을 두고 있어서 최소 메모리만 사용하도록 구성되어 있다.
  • 실행속도도 빠르고, 메모리를 최소한으로 잡아먹는다.
  • 가상머신은 설치 OS별로 별도의 공강은 구상해줘야 되는데 컨테이너는 그럴 필요 X
    • 컨테이너의 OS가상화라는 개념이 존재하기 때문
  • OS 가상화는 사용하려는 OS를 호스트 OS와 독립하는 방식이 아닌, 커널만 공유하여 프로세스
    실행하는 개념이다.

alt

4. 컨테이너 특징

  • 자원 낭비의 부담이 적다.
  • 실행 속도가 빠르다.
  • 배포 및 관리를 단순하게 해준다.
  • 컨테이너 이미지를 쉽게 공유 및 사용이 가능하다.

1)

  • 컨테이너는 배포의 특화되어 있고, 컨테이너 플랫폼만 서버에 존재한다면 쉽게 뿌리고 구동이 가능
  • 컨테이너에 구동된 환경을 이미지화 할 수 있다.
  • 가상머신의 스냅샷과 비슷한 개념으로, 이런 이미지들을 만들어 웹 상에서 공유, 다운로드하여 깃허브 처럼
    필요한 환경을 자유자재로 사용할 수 있다.

5. 컨테이너 동작원리

  • 컨테이너를 사용할 수 있는 docker, kubernetes 플랫폼위에 하나의 컨테이너 공간을 만듭니다.
  • 그다음 컨테이너 안에 어플리케이션(서비스)들을 구동시킨다.
    • 서비스는 1개가 될수도 있고, 여러개를 동시에 구동시킬 수 있다.
  • 여러 컨테이너를 묶어서 포드라는 개념으로 정의할 수도 있다.

alt

출처 : https://kk-7790.tistory.com/135

태그:

카테고리:

업데이트:

댓글남기기