• 개인 정리겸 도커에 대한 내용을 올리려 합니다.
  • 잘못된 부분 지적 감사히 받겠습니다.


1. 도커란?

- 하이퍼바이저(hypervisor) 없이 리눅스 컨테이너(Linux Container, LXC) 기술을 바탕으로 애플리케이션을 격리된 상태에서 실행하는 가상화 솔루션 입니다.

- 쉽게 말해서 기존에 저희가 리눅스 환경이 필요하면 서버가 필요하고 리눅스를 설치하고 복잡한 과정이 필요했는데 도커란 기술을 이용해서 이를 편하게 구현할 수 있죠.

  (단, 호스트 OS 는 있어야 합니다.

- 일단 저는 개발자 입장에서 도커를 바라보겠습니다. 요즘은 도커가 윈도우 및 맥에서도 설치가 가능해서 로컬환경도 리눅스 환경을 손쉽게 구현 할 수 있습니다.



2. VM vs Docker

- 컨테이너와 일반 VM 환경을 비교한 것입니다. VM 환경은 Guest OS 를 설치해서 격리하는 것이기 때문에 빌드속도가 느린반면 도커는 필수 유틸리티만 포함하여 최소로 컨테이너를 빌드하고 나머지는 호스트 OS 의 자원을 사용합니다.


- 위와 같은 속도면에서는 도커가 빠르지만 보안적 측면( 완전 격리 )에 있어서는 VM이 유리합니다.




3. 도커의 구성 요소

  구성 요소

설명 특징

이미지

필요한 프로그램과 라이브러리, 소스를 설치한 파일로 만든

컨테이너

이미지를 실행한 상태

여러 개의 애플리케이션을 단일 호스트에서 구동하기 위한 개념

LXC(Linux Container)

LXC 만든 컨테이너는 고유의 파일시스템, 프로세스, 네트워크 공간을 가짐. 마치 가상 머신처럼 독립적이고 격리된 공간

도커 엔진

사용자가 컨테이너를 생성하고 사용할 있도록

도커 허브

SaaS 기반의 서비스로 도커 서비스를 생성하고 공유할 있도록


=> 쉽게 말해서 예전에 iso 파일을 이용해서 프로그램을 설치한 것이 생각나시나요?

[ iso 파일 = 이미지 ] 이고 이것을 통해서 실행된 것이

[ 프로그램 = 컨테이너 ] 라고 생각하시면 좀 더 직관적으로 매핑 가능합니다.


=> 도커 허브는 이미지 파일 또는 Docker File이라는 파일들이 모여 있는 공통 저장소라고 생각하시면 됩니다.



참고. docker cheet sheet







+ Recent posts