
컨테이너 개념잡기- 왜 컨테이너일까?
컨테이너 내용물의 소유자는 컨테이너가 배송되는 방법에 직접 관여할 필요가 없으며, 배송 회사는 내용물을 알거나 관리할 필요 없이 컨테이너를 발송 지점에서 목적지로 운송합니다.
컨테이너는 가로, 세로, 높이의 크기가 세계적으로 표준화되어 있습니다. 컨테이너의 크기가 통일되어 있기 때문에 화물 트레일러로 옮기고 그대로 대형 선박에 컨테이너를 옮겨 적재 할 수 있습니다. 또한 컨테이너 표준을 지키면 물류에 대한 계약 , 보관 , 운송 , 보험 등에 대해서 동일한 기준으로 비즈니스를 할 수있습니다.
리눅스 컨테이너 (LinuX Containers,LXC)는 단일 컨트롤 호스트 상에서 여러개의 고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영 시스템 레벨 가상화 방법입니다.
육상과 해상 운송에서 컨테이너는 국제무역의 확대에 기폭제 역할을 하였으며, 컨테이너없는 무역은 상상하기 힘듭니다.

보잘 것 없어 보이는 철재 상자 – 컨테이너

컨테이너 이해하기
1950년대 컨테이너의 등장
컨테이너을 발명한 말콤 맥린 (Malcolm P. McLean )

오픈소스 개념으로 컨테이너 기술을 공유한 Keith Tantlinger
화물운송 분야의 컨테이너와 공통점은?
- HP, 오라클, IBM 과 같은 대형 벤더들은 수년간 켄테이너 기술을 사용해 왔으며, 특히 구글은 내부 프로젝트에서 매우 유사한 구현 방식을 사용하였습니다. 컨테이너 기술은 오픈소스와 커뮤니티를 중심으로 발전하고 있습니다.
- 화물 컨테이너의 내부 화물은 운송에 중요하진 않습니다. 세계의 모든 선박과 트럭 그리고 크레인은 컨테이너 규격에 적합해야 합니다. 마찬가지로 도커 컨테이너도 어떤 애플리케이션( 관련 파일, 프레임워크, 의존성 등)이 내부에 있는지 중요하지 않습니다.
컨테이너는 모든 리눅스 배포판에서 실행되며, AMAZON AWS, Micrsoft Azue, Google Cloud Platform, Rackplace 등 모든 퍼블릭 클라우드 환경에서 운영됩니다. - 해외로 이사를 간다고 가정을 하면 사실상 컨테이너에 이사짐을 넣은 후 트럭으로 이동하여, 크레인으로 배에 옮겨져 다른 나라로 운송합니다. 마찬가지로 컨테이너를 이용하면 개발자가 로컬 시스템에서 애플리케이션을 빌드하고 테스트 할 수 있으며
애플리케이션을 서버에 Push할 수 있습니다. 개발자는 컨테이너로 배포하게 되면 개발환경이나 운영환경이나 동일하게 동작할 것이라는 것을 알수 있습니다.

컨테이너는 라이프사이클을 손쉽게 관리할 수 있게 할 수 있고 “Run Anywhere” 비전처럼 클라우드드 서비스 어디에서도 운영될 수 있습니다.
컨테이너는 가상화와 비교했을때 클라우드 마이그레이션 과정을 비교하기 어려울 정도로 단순화되고 효율적입니다.
컨테이너 기술이 클라우드 활성화의 견인차?
가상화 기술과 컨테이너 기술의 차이점과 기대 효과
References & Related Links
- Containerization From Wikipedia, the free encyclopedia – https://en.wikipedia.org/wiki/Containerization
- Malcom McLean From Wikipedia, the free encyclopedia – https://en.wikipedia.org/wiki/Malcom_McLean
- 단순한 ‘박스’가 역사를 바꿨다. 컨테이너의 표준화, 혁신의 표준이 됐다 – http://www.dongabiz.com/article/view/1203/article_no/7393
- The Box(더 박스) 컨테이너 역사를 통해 본 세계경제학 – http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9788950914653
- DOCKER AND THE INTEGRATED OPEN SOURCE COMPANY – https://stratechery.com/2014/docker-integrated-open-source-company/

컨테이너 장점
가상 머신은 하드웨어 스택을 가상화합니다. 컨테이너는 이와 달리 OS를 가상화하여 여러 개의 컨테이너를 OS 커널에서 직접 실행합니다. 컨테이너는 기존의 가상화 기술보다 훨씬 가볍게 동작하며, OS 커널을 공유하고, 시작 시간이나 종료 시간이 빠르고 , 메모리를 훨씬 적게 차지합니다

컨테이너 기술 소개
IT 분야에서 “컨테이너”도 일종의 박스의 의미이며, 물류분야에서 처럼 Portability (이동성) 을 실현하기 위해 만들어진 기술입니다.
이동성은 IT 시스템 (플랫폼 또는 인프라) 상에서 다른 IT 시스템으로 이동을 쉽게 허용하는 성질을 의미하는 것입니다.

가상화와 컨테이너의 비교
가상화는 개발측면이나 운영측면에서 자원 효율적으로 사용하고 관리하는 기술로서 널리 확산되었습니다. 다양한 OS 환경과 어플리케이션을 하나의 파일로 관리할 수 있는 “가상 머신 (VM)”은 손쉽게 이동할 수 있는 이식성을 제공해 주었습니다.
컨테이너는 하이퍼바이저와 Guest OS 없이 애플리케이션 운영환경을 제공하는 기술로서 앞서의 가상화 기술의 고질적인 문제점들을 해결하고 있습니다.

Docker 그리고 컨테이너 기술의 역사
컨테이너 기술의 시작과 현재까지 발전해온 역사를 살펴봅니다.
1972년 IBM VM / 370 (OS) 최초 가상화 기능 구현 , 1979 년 UNIX V7 에 chroot 시스템 콜 도입, 1999년 Virtuozzo 출시 컨테이너 가상화의 새로운 방향을 제시

물리서버, 가상화를 넘어 컨테이너 까지
컨테이너 기술이 등장하기 전까지 IT 역사를 되돌아 보겠습니다.
가상화기술이 출현하기 전에는 하나의 물리적 서버에서 다양한 애플리케이션을 올려 사용하는 시대였습니다.