본문 바로가기

개발/Docker

1. 도커[Docker]가 뭐 길래?

반응형

-이 글은 리눅스, 도커, 서버에 대한 지식이 없는 초보자를 위한 글 입니다.

**글을 읽기 위해 필요한 사전 지식 - 가상머신, 가상화, 프로세스, 리눅스가 무엇인지**

 

 

사전적 의미

Docker - 부두 노동자

 

고래가 컨테이너를 싣고 가는 모습이 상당히 귀엽다 ><

 

 보통 도커(Docker)를 설명할 때 컨테이너 기반의 오픈소스 가상화 플랫폼이라고 말을 한다.

필자도 그러했지만 처음 접하는 사람이 저걸 보고서 바로 이해를 할 수 있을거라 믿지 않는다(나만 바보인가...)

 

그래서 공부한 내용을 정리 할 겸 도커가 무엇인지 쉽게 설명을 해 보려고 한다.

 

일단 도커에 대해서 알아보러 왔다면 도커가 왜 필요한지부터 알아야 될 것이다.

 

1. 도커의 역사

도커는 2013년 3월 산타클라라에서 열린 Pycon Conference에서 dotCloud의 창업자인 Solomon Hykes가 The future of Linux Containers 라는 세션을 발표하면서 처음 세상에 알려졌다

 

2. 도커란?

 

도커는 '컨테이너 기반의 오픈소스 가상화 플랫폼' 이라고 말을 하는데 바로 이해가 간다면 이 글을 읽지 않아도 된다.

 

컨테이너라고 하면 규격이 정해져 있는 상자 안에 화물을 넣고 배에 실어서 운반하는 박스를 생각할 수 있는데 서버에서 이야기하는 컨테이너도 이와 비슷하다. 다양한 프로그램, 실행환경을 가상의 컨테이너에 적재하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해 준다. 백엔드 프로그램, 데이터베이스 서버, 메시지 큐 등 어떤 프로그램이던 컨테이너에 적재(추상화) 할 수 있고 PC, AWS, Azure, Goolgle cloud 등 어디에서든 실행 가능하다

 

 

컨테이너(container)

 

  •  프로세스의 격리

사실상 가상화 한다는 측면에서 Virtual Machine을 이용한 방법과 유사하지만 단순한 방법 하나로 엄청난 성능의 차이를 보이게 되는데 그게 바로 프로세스의 격리이다. Virtual Machine은 OS전체를 가상화 시키고 프로세스를 따로 할당해 주어야 하는데 반에 도커는 프로세스 자체를 격리시켜서 같은 HOST의 프로세스를 필요한 만큼만 받아서 사용을 하기 때문에 효율이 대폭 상승하게 됐다.

 

 

이미지

 

컨테이너와 더불어 도커에서 가장 중요한 개념인 이미지이다

 

우리가 보통 Virtual Machine에서 가상 컴퓨터를 실행 시킬 때 아무런 설정이 되지 않은 OS이미지를 구체화 시키는데 도커는 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것을 이미지화 시켜서 상태값을 가지지 않고 변하지 않는데 이 이미지를 이용하여 같은 설정의 서버를 손쉽게 여러대 만들어 구현 할 수 있다

 

 

 

레이어 저장방식

도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고있기 때문에 보통 용량이 수백메가에 이르는데, 처음 이미지를 다운 받을 땐 크게 부담이 안 되지만 기존 이미지에 파일 하나 추가 했다고 다시 수백메가를 받으면 당연히 이런건 안 쓰는게 나을지도 모른다

 

포토샵을 생각해 보면 쉽다 레이어들이 차곡차곡 하나씩 모여서 하나의 그림이 되는 것 처럼 도커도 레이어 저장방식을 써서 내가 수정하고 싶은 부분의 레이어만 추가하거나 제거하여 컨테이너에 이미지를 올려주면 새로운 환경을 구축할 수 있게 된다.

 

 

다음 글에서는 도커 설치에 관하여 작성을 하겠다.

반응형