도커
컨테이너형? 가상화를 구현하기 위한 상주 어플리케이션, 이를 관리하는 명령형 도구로 구성.
어플리케이션 배포에 특화되어 있음.
도커 이전 컨테이너형 가상화 에는 LXC(Linux Containers)가 가장 유명 했으며 도커 초기에는 LXC를 런타임으로 사용 했음. 현재는 rucC를 사용.
* 컨테이너형 가상화 기술
컨테이너형 가상화를 사용하면 가상화 소프트웨어 없이도 운영 체제의 리소스를 격리해 가상 운영 체제로 만들 수 있음. 이 가상 운영 체제를 컨테이너라고 하며 컨테이너를 만들면서 발생하는 오버헤드는 다른 가상화 소프트웨어보다 더 적고 빠르게 시작 및 종료가 가능, 이에 들어가는 리소스도 작은 편임.
그림1
◈ 도커와 LXC 차이
- 호스트 운영 체제의 영향을 받지 않는 실행 환경
- DSL(Dockerfile)을 이용한 컨테이너 구성 및 어플리케이션 배포 정의: Dockerfile 코드를 기반으로 복제 및 배포가 이루어지기 때문에 재현성이 높음. 만들어진 기존 컨테이너를 다른 환경에서 동작시키기 위한 매커니즘이 잘 만들어져 있음.
- 이미지 버전 관리
- 레이어 구조를 갖는 이미지 포맷
- 도커 레지스트리
- 프로그램 가능한 다양한 기능의 API
◈ 도커 사용?
- 코드를 통한 실행 환경 구축과 어플리케이션 구성
- 실행 환경과 어플리케이션 일체화로 이식성 향상
- 시스템을 구성하는 어플리케이션 및 미들웨어의 관리 용이성
- 코드로 관리하는 인프라와 불변 인프라의 두 개념을 낮은 비용으로 실현 가능
- 도커 컨테이너는 운영체제와 어플리케이션을 함께 담는 개념.
◈ 컨테이너와 VM 차이
컨테이너는 VM과 유사하나 VM은 아니다. OS가 필요하지 않음?
Docker 이미지 파일은 엄처 작고 가벼우며 Library를 공유.
◈ 도커 컨테이너 오케스트레이션
- 여러 컨테이너를 사용하는 어플리케이션을 쉽게 관리할 수 있도록 -> 도커 컴포즈
- Yaml 포맷으로 작성된 설정 파일로 컨테이너를 정의하거나 컨테이너 간의 의존 관계를 정의해 시작 순서를 제어할 수 있음.
- 도커 스웜(Docker Swarm): 여러 컨테이너를 관리하는 것만이 목적인 도커 컴포즈와 달리 컨테이너 증감, 노드의 리소스를 효율적으로 활용하기 위한 컨테이너 배치, 로드 밸런신 기능 등의 기능을 갖춤. 배포 시에 롤링 업데이트가 가능.
- 쿠버네티스: 구글의 오픈소스 소프트웨어, 사실상 컨테이너 오케스트레이션 표준. 도커 스웜보다 기능이 충실하며 확장성이 높음.
'IT > 도커' 카테고리의 다른 글
도커교육 -1일 (실습) (0) | 2021.02.09 |
---|---|
도커 교육 - 1일 (이론) (0) | 2021.02.02 |