컨테이너 역사

엔지니어 게시판
[엔지니어 게시판 글쓰기 사용 방법]

[code]
게시글을 쓰실때 여기에 소스코드를 넣어주시면 코드가 깔끔하게 정리되어 보여집니다 :)
[/code]

<Cloud> 컨테이너 역사

Support 0 2,962 2020.11.05 23:46

아래 그림은 컨테이너 기술이 어떻게 발전되어 왔는지를 보여주는 컨테이너 기술 히스토리입니다.

 

403031255_OSWBvdIZ_2bc8167c5d9d6516ea8c5de650c3fcaffa4bd924.png

 

컨테이너 기술은 2000년도에 오픈소스 Unix인 FreeBSD 4.0을 통해 도입된 Jail에서 시작되었습니다. 

Jail의 한글 의미를 보면 그림과 같이 감옥입니다. 쉽게 말해서 교도소에는 감옥이 여러개가 있고, 그 안에 범죄자들이 구속이 됩니다. 특정 감옥 안의 범죄자는 다른 감옥에 있는 범죄자와 소통을 할 수 없습니다. 이처럼 FreeBSD Unix 시스템을 Jail이라고 부르는 독립된 작은 구획에 넣어 시스템을 분할하여 사용할 수 있는 것이 특징으로 Jail 안에서 실행되는 프로세스는 Jail 밖의 프로세스에 대해 영향을 줄 수 없다는 특징이 있습니다. 

 

그 이후에는 이와 비슷한 컨테이너 개념들은 계속해서 사용되고 개발되어 왔습니다. 

그러다가, 2008년 8월에 처음 릴리즈 된 LXC(Linux Containers)는 최초로 가장 완벽한 리눅스 컨테이너 관리자를 구현했습니다. 왜냐하면, 단일 컨트롤 호스트 상에서 cgroup과 namespace를 사용하여 여러 개의 독립된 컨테이너들을 실행할 수 있도록 운영 시스템 레벨의 가상화를 했기 때문입니다. 

많은 사람들이 알고 있는 Docker는 2013년 3월에 Docker Inc(구 DotCloud)를 통해 릴리즈된 컨테이너 기술입니다. Docker는 기존 컨테이너 기술과는 다르게 새로운 계층화된 이미지를 실행하고 구축하는 간편한 CLI와 서버 데몬, 사전 구축된 컨테이너 이미지 라이브러리 및 레지스트리 서버의 개념 등을 선보였습니다.

 

403031255_vf8NMjAc_05a63c180f25f332307203979e2cddde097d57df.png

 

Docker가 나온지 얼마 안되 2014년 6월에 Google은 15년간의 노하우가 담긴 Kubernetes를 오픈 소스화 하였습니다. Kubernetes는 컨테이너화 된 응용 프로그램의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템으로, 응용 프로그램을 구성하는 컨테이너를 논리 단위로 그룹화하여 쉽게 관리하고 검색 할 수 있습니다. 

 

403031255_KXEtPirA_acd01ccd41107c715dc20d896854d654c5296c39.png

 

Kubernetes가 나오면서 컨테이너 시장은 급속도로 발전했습니다. 그러면서 2015년 7월에 OCI(Open Container Initiative)라는 리눅스 컨테이너에 대한 공개 표준을 설계하기 위해 Docker와 컨테이너 기술을 리드하는 여러 회사 및 커뮤니티가 함께 설립한 프로젝트로 Linux Foundation에서 시작되었습니다. 

 

403031255_yUMCqR1k_271514264b4ff90f5fae0593172835a2589c23bc.png

 

OCI에서는 컨테이너 런타임 사양과 이미지 사양을 표준화하고 구현하였습니다. OCI가 설립되면서 Runtime spec, Runtime tools, Runc, Image spec, Image tools와 같은 세분화된 기술 표준을 만들어 갔습니다. Apache Mesos는 OCI Image spec을, Docker는 OCI Image Layout의 표준 및 구현에 참여하였습니다. CoreOS는 rkt(rocket)라 불리는 OCI container 및 pod에 대한 runtime 표준 및 구현에 참여하였으며, Cloud Foundry에서 OCI container manager를 지원하였습니다. 

 

CNCF(Cloud Native Computing Foundation) 는 2015년 11월에 설립된 단체로 Kubernetes 기술을 중심으로 다양한 기술 발전과 커뮤니티 활동을 장려하며, OCI를 통해 Kubernetes 표준화 업무에 참여하였습니다.

이런 프로젝트 및 단체를 통해 컨테이너 이미지 기술과 런타임 기술이 발전하면서 2016년 1월에는 OCI 컨테이너 이미지와 Docker V2 이미지와 호환되는 Skopeo가 나왔습니다. Skopeo는 컨테이너 이미지 및 이미지 리포지토리에서 다양한 작업을 수행하는 명령 줄 유틸리티입니다. 

 

403031255_hPHVXCgx_338aa2277dda074b6cf68bfb906163afc92cc223.png

 

CNCF는 2017년 3월 OCI와 함께 Kubernetes container runtime 표준화 업무를 위해 CRI-O(Container Runtime Interface using OCI) 프로젝트를 생성합니다. CRI-O는 OCI 호환 런타임과 kubelet 간의 통합 경로를 제공하기위한 것으로, OCI 호환 런타임을 사용하여 Kubelet 컨테이너 런타임 인터페이스 (CRI)를 구현합니다. 

 

Buildah는 2017년 6월에 릴리즈되었으며, OCI 컨테이너 이미지를 쉽게 생성하기 위한 툴입니다. 2018년 2월에 릴리즈한 Podman은 포드(Pod)에서 OCI 기반 컨테이너를 실행하기위한 라이브러리 및 도구입니다. Kubernetes가 대중화 되면서 Container Pod 개념을 사용하는 응용 프로그램을 위한 라이브러리를 제공합니다. Podman은 포드, 컨테이너, 컨테이너이미지 및 컨테이너볼륨을 관리합니다.

 

403031255_e9gwEO3j_e714f5d099d47567913cabb805f11948d01e4362.png

 

RedHat은 OCI(Open Container Initiative)의 Platinum 멤버로서 다양한 컨테이너 표준화 및 구현에 참여하였으며, 2017년 3월 Docker에서 Enterprise Edition을 릴리즈하면서 2018년 1월에 OCI 멤버 중 하나였던 CoreOS를 인수하였습니다. 그리고, CoreOS와 함께 Podman를 출시하면서, CoreOS의 핵심 컨테이너 기술인 Podman, Skopeo, Buildah를 포함하여 2019년 4월에 Red Hat Enterprise Linux 8.0을 릴리즈하였습니다. 그 이후로 Rhel 8을 기반으로 한 Red Hat OpenShift Container Platform 4, Red Hat OpenStack Platform 16은 Podman이 Docker를 대신하게 되었습니다.

 

이렇게 해서 컨테이너 역사를 알아보았습니다. 컨테이너 및 클라우드 기술을 접하면서 많이 듣던 용어들이 모두 컨테이너 기술을 표준화하기 위한 OCI(Open Container Initiative)라는 Linux Foundation 에서 시작한 프로젝트를 시작으로 모두 연결되어 있었으며, 레드햇이 컨테이너 기술을 리드하는 오픈소스 기업으로써 참여율이 높다는것이 참으로 인상적이었습니다. 다음 포스팅에서는 Red Hat OpenStack Platform이 어떻게 컨테이너 기술을 사용하고 있는지에 대해 알아보겠습니다.  

 

::: 참고자료 :::

A Brief History of Containers 

https://blog.aquasec.com/a-brief-history-of-containers-from-1970s-chroot-to-docker-2016

Cloud Native Landscape CNCF and OCI

https://www.slideshare.net/caniszczyk/cloud-native-landscape-cncf-and-oci

CloudFoundry Github

https://github.com/cloudfoundry/garden-runc-release

CRI-O Github

https://github.com/cri-o/cri-o

RKT Github

https://github.com/rkt/rkt

Moby Github

https://github.com/moby/moby/pull/26369

Containerd Github

https://github.com/docker-archive/containerd

Apache Mesos

https://issues.apache.org/jira/browse/MESOS-5011

 

 

 

 

 

<원문/출처: https://naleejang.tistory.com/m/228>

Comments

번호 분류 제목 글쓴이 날짜 조회
57 커뮤니티 넥슨 디벨로퍼 컨퍼런스 6/9 ~6/11 센스장이 06.11 795
56 커뮤니티 네이버 클라우드, 오픈소스 후원자에서 참여자로 변신 jack 06.10 719
55 커뮤니티 How to Migrate from CentOS 8 to AlmaLinux 8.4 jack 06.09 774
54 커뮤니티 딥러닝 텐서플로 교과서 JakeMin 06.04 773
53 커뮤니티 개발자 한 명이 백 명의 일을 할수 있나? JakeMin 05.27 1017
52 커뮤니티 개발자 유튜버, 구독자 1000명 달성까지의 여정. 그리고 수익창출 실리콘밸리 05.26 1131
51 커뮤니티 유용한 테스트 캐이스를 위한 개발자의 자세 Doge 05.25 944
50 커뮤니티 당신은 주니어 인가요 시니어 인가요? Doge 05.25 1009
49 커뮤니티 압축파일 풀때 오류 생기면? 댓글+1 후니 05.23 709
48 커뮤니티 소프트웨어 인력 대책 SVKOREANS 05.13 1079
47 커뮤니티 [안드로이드로 배우는 OpenCV] 이미지 필터링 (공간적 필터링) Support 04.29 998
46 커뮤니티 40주간 진행한 사이트 프로젝트 후기 Support 04.27 905
45 커뮤니티 개발자의 연봉 상승 모멘텀, -그리고 환상 보라고래 04.16 1024
44 커뮤니티 Stack Overflow 카피 사이트. 더 이상 보기 싫다면? 보라고래 04.16 992
43 커뮤니티 [NVIDIA AI Developer Meetup 공식 온라인 행사 안내] SVKOREANS 02.14 1939
42 커뮤니티 스타벅스를 통해서 소프트웨어 확장성 배우기 보라고래 01.18 1984
41 커뮤니티 MS에서 주관하는 가상화 데스크탑 웨비나 Support 2020.12.21 1930
40 커뮤니티 챗봇을 위한 대화는 어떻게 디자인할까 Support 2020.12.15 2346
39 커뮤니티 Deep Learning 2.0 Virtual Summit SVKOREANS 2020.12.07 2239
38 커뮤니티 Microsoft Azure Virtual Training Day: Azure에서 클라우드 네이티브 앱 개발 SVKOREANS 2020.12.06 2309
37 커뮤니티 Server-side with Kotlin Webinar Series SVKOREANS 2020.12.03 2577
36 커뮤니티 GraphQL Galaxy Conference - Dec 7-8, 2020(PST) SVKOREANS 2020.12.03 2431
35 커뮤니티 Chrome Dev Summit 2020 SVKOREANS 2020.12.03 2551
34 커뮤니티 MongoDB Online Conference SVKOREANS 2020.12.01 2481
33 커뮤니티 개발자를 위한 정보 검색 팁 Support 2020.11.20 2728
32 커뮤니티 개발자를 위한 인프라 기초 총정리 Support 2020.11.13 5567
열람중 커뮤니티 <Cloud> 컨테이너 역사 Support 2020.11.05 2963
30 커뮤니티 개발자들은 왜 Slack 을 쓸까? SVKOREANS 2020.10.13 3807
29 커뮤니티 초보 개발 팀장의 1년 회고 - 좋은 팀장이 되기 위한 노력들 SVKOREANS 2020.09.17 4181
28 커뮤니티 [번역] 진정한 선임 개발자는 어떤 사람인가? SVKOREANS 2020.09.07 3879
27 커뮤니티 현직 개발자가 추천하는 꼭 배워야 할 프로그래밍 언어! 보라고래 2020.08.29 3587
26 커뮤니티 초보 개발자, 이것만 안 해도 평균 이상 갑니다 (흔히 하는 실수 공개) 보라고래 2020.08.29 3508
25 커뮤니티 [IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 SVKOREANS 2020.08.27 4325
24 커뮤니티 같이 일하기 힘든 뛰어난 개발자 - 입개발자, 손개발자, 뇌개발자 SVKOREANS 2020.08.25 4336
23 커뮤니티 개발자가 공부로 살아남는 방법 Support 2020.08.18 3856
22 커뮤니티 좋은 개발문화란 무엇일까? Support 2020.08.10 4206
Category

State
  • 현재 접속자 70(1) 명
  • 오늘 방문자 86 명
  • 어제 방문자 690 명
  • 최대 방문자 2,210 명
  • 전체 방문자 155,209 명
  • 전체 게시물 2,891 개
  • 전체 댓글수 375 개
  • 전체 회원수 480 명