컨테이너 기반 가상화 플랫폼, 도커(Docker)의 이해(1)

컨테이너 기반 가상화 플랫폼, 도커(Docker)의 이해(1)

대학생 때 알게되어 많은 강의를 들었던 SK T아카데미에서 YouTube에 양질의 강의를 올려서 하나씩 보고있다. 2018년 초에 토크 ON 세미나라는 이름으로 도커(Docker) 강의를 했는데 강사님(nacyot)이 이해하기 쉽게 설명을 해서 나도 처음부터 끝까지 듣게 되었다.

도커가 처음 소개된 날

도커(Docker)는 2013년 닷클라우드(dotCloud)에서 일하는 솔로몬 하익스(Solomon Hykes)가 Pycon 2013에서 5분 이라는 짧은 발표를 통해 처음 소개된다. 아래 영상에서 솔로몬은 프로그래밍 언어를 처음 배울 때 누구나 작성하는 ‘헬로우 월드(Hello World)’를 도커(Docker)로 출력하는 데모를 시연한다.

컨테이너는 VM이 아니다.

Virtual Machine은 소프트웨어를 통해 하드웨어를 가상화한다. 컨테이너는 OS에서 제공하는 기능을 활용하여 격리된 환경에서 프로세스를 실행한다.

하드웨어 가상화 없는 격리된 환경에서 실행되는 프로세스

도커(Docker)는 과거에는 lxc 를 통해 컨테이너를 구현했으나 현재는 libcontainer를 자체 개발하여 컨테이너를 구현하고 있다.

cgroups는 자원을 제한하는 기능을 제공한다. 만약 별다른 설정을 하지 않는다면 컨테이너는 호스트의 전체 자원을 사용할 수도 있다.

도커 이전의 유사 컨테이너

정확한 비유는 아니지만 도커(Docker) 이전의 유사 컨테이너로는 chroot를 생각할 수 있다. chroot는 특정 경로를 루트(/)로 변경하는 명령어다. 과장해서 말하면 도커(Docker)를 뽕 맞은 chroot 라고 생각해도 된다.

도커 성공의 비결

어떤 프로세스를 실행 하려면 환경 구성이 쉽지 않고 공유가 힘들었다. 그러나 도커(Docker)는 레지스트리(Registry)라는 공유 저장소를 제공하여 다른 사용자가 쉽게 이러한 자원에 접근할 수 있도록 하여 성공할 수 있었다. Lxc는 이러한 레지스트리(Registry) 기능을 제공하지 않아서 실패했다.

컨테이너가 필요한 이유

컨테이너는 동일하지 않은 컴퓨터 환경에서 깨끗하게 애플리케이션을 실행하는 최상의 방법을 제공하여 누구든지 자신과 동일한 환경에서 프로그램을 실행할 수 있다는 것을 보장한다. 쉽게 말하면 도커(Docker)의 컨테이너 기술은 매우 강력한 포터블 앱이라고 생각해도 된다.

[토크ON세미나] 컨테이너 기반 가상화 플랫폼 ‘도커(Docker)’의 이해 1강

이번 포스트는 여기까지다. 다음 내용은 컨테이너 기반 가상화 플랫폼, 도커(Docker)의 이해(2) 로 이어진다.

Hits: 4

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다