콘테이너를 처음 사용해보고 싶어 하는 사람들을 위한 FAQ 9가지

 ‘콘테이너’ 기술이 매우 뜨겁다. 혹여 이것이 일시적인 유행일 뿐이라고 생각했다면, 다시 한 번 생각하라. 도커(Docker)가 등장함으로써 엄청난 속도로 퍼지고 있는 이 기술은 현재 개발자 커뮤니티에서 가장 많은 화젯거리가 되고 있으며, 기업 총수들조차 ‘콘테이너가 뭔데?’라고 관심을 보이고 있는 중이다. 리서치 업체인 451 리서치(451 Research)에 의하면 2020년까지 콘테이너 기술 시장의 규모는 2조 6900억원에 달할 것으로 예상된다. 그래서 지금이라도 콘테이너에 대해 알고 싶어 하는 사람들을 위해 다음 9가지 FAQ를 준비했다.


1. 콘테이너란 무엇인가요?
IT 기술업체인 블루메탈(BlueMetal)의 밥 패밀리어(Bob Familiar)는 콘테이너에 대해 다음과 같이 정의한다. “소프트웨어가 작동하는 데 필요한 모든 요소들이 각각의 런타임(run-time :실행시간) 환경 안에 개별 포장된 채 패키지화 되어 있는 것. 이 ‘각각의 런타임 환경’이 바로 콘테이너다. 가상 기기와 달리 운영 체제 전체를 묶어놓은 것이 아니다. 소프트웨어 실행에 필요한 라이브러이와 설정 사항들만이 이 패키지 않에 포함되어 있다. 그래서 가볍고 효율적이며, 소프트웨어가 항상 같은 기능을 발휘하도록 한다.”

2. 콘테이너는 어디에 좋은가요?
콘테이너가 기업들에게 아주 유익한 존재인 이유는 여러 가지가 있다. 먼저 속도와 유연성에 있어서 휴대성 및 유연성에 있어서 타의 추종을 불허한다. 특히 이 컴퓨팅 환경에서나 저 컴퓨팅 환경에서나 똑같은 성능을 안정성 있게 보장해주는 기술은 콘테이너가 거의 유일한 해결책이라고 한다. 클라우드로 인해 ‘이 환경 저 환경에서의 안정적인 실행’이 필수가 되어가고 있고, 마이크로서비스 아키텍처라는 개발 방식이 확산되어가는 추세와 찰떡궁합이다. 

시스템 관리자들에게 있어 안정적인 애플리케이션 환경이 제공된다는 건 OS 호환성 걱정, 패치 호환성 걱정, 타 애플리케이션과의 호환성 걱정이 없어진다는 것과 같다.

3. 콘테이너의 역사는 어떻게 되나요? 간단히요
2013년 도커(Docker)가 등장하면서 콘테이너 기술의 인기가 급격히 높아졌지만 사실 콘테이너화(containerization)라는 기술 자체는 이미 오래전부터 존재했었다. 가장 초기의 콘테이너화 기술이 등장한 건 이미 1979년의 일로, 유닉스 v7의 chroot 시스템 호출의 개발과 함께였다. chroot 시스템 호출은 초기 프로세스를 따로 분리시켜 내는 기능을 가지고 있었다. 그리고 2000년, FreeBSD Jails라는 곳에서 chroot의 원리를 계발해 OS 단에서 가상화가 가능하도록 만들었다. 본격적인 콘테이너화 기술이 자라나게 된 것은 이 때부터다. 그 후 2004년 솔라리스(Solaris)에서 콘테이너 기술을 발표했고, 2008년 리눅스 콘테이너가 등장하기도 했다. 

4. 도커를 자꾸 언급하시는데, 도커는 뭔가요?
2013년에 시작된 오픈소스 프로젝트로, 이미 콘테이너와 거의 동의어 취급을 받기에 이르렀다. 리눅스 콘테이너와 똑같은 커널 원리로 만들어졌으며, 사용하기 편한 인터페이스와 중앙 공공 이미지 저장소의 운영을 통해 콘테이너 열풍을 부추기고 있다. 이 중앙 저장소를 도커 허브(Docker Hub)라고 부르며, 이것이 ‘쉬운 콘테이너 기술’인 도커의 핵심이다.

5. 도커와 관련해서 알아둘 것이 있나요?
도커가 사용하기 편하다고 해도, 처음부터 식은 죽 먹듯이 편한 건 아니다. 도커 혹은 도커 사용자들 사이에서 사용되는 용어 몇 가지만 알아도 처음의 그 서먹함이 빠르게 해소될 수 있다. 도커 전도사인 마이크 콜먼(Mike Coleman)은 다음 네 가지 용어를 꼽아주었다.