- 개인 정리겸 도커에 대한 내용을 올리려 합니다.
- 잘못된 부분 지적 감사히 받겠습니다.
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
'Container' 카테고리의 다른 글
AWS ECR Public 레파지토리 생성하기 (2) | 2020.12.11 |
---|---|
Github Container Registry 사용하기 (0) | 2020.12.07 |
도커허브 제한으로 대체재를 찾기 위한 삽질기 (0) | 2020.12.07 |
도커 시작하기 3 - Docker를 이용해 우분투 및 JDK8을 설치해 보자 (0) | 2018.04.01 |
도커 시작하기 2 - Docker 를 이용한 프로젝트 구상 (0) | 2018.04.01 |