(Cloud) 컨테이너 란?
컨테이너 (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와 독립하는 방식이 아닌, 커널만 공유하여
프로세스
로
실행하는 개념이다.
4. 컨테이너 특징
- 자원 낭비의 부담이 적다.
- 실행 속도가 빠르다.
- 배포 및 관리를 단순하게 해준다.
- 컨테이너 이미지를 쉽게 공유 및 사용이 가능하다.
1)
- 컨테이너는 배포의 특화되어 있고, 컨테이너 플랫폼만 서버에 존재한다면 쉽게 뿌리고 구동이 가능
- 컨테이너에 구동된 환경을 이미지화 할 수 있다.
- 가상머신의 스냅샷과 비슷한 개념으로, 이런 이미지들을 만들어 웹 상에서 공유, 다운로드하여 깃허브 처럼
필요한 환경을 자유자재로 사용할 수 있다.
5. 컨테이너 동작원리
- 컨테이너를 사용할 수 있는 docker, kubernetes 플랫폼위에 하나의 컨테이너 공간을 만듭니다.
- 그다음 컨테이너 안에 어플리케이션(서비스)들을 구동시킨다.
- 서비스는 1개가 될수도 있고, 여러개를 동시에 구동시킬 수 있다.
- 여러 컨테이너를 묶어서 포드라는 개념으로 정의할 수도 있다.
댓글남기기