일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- hibernate
- programmers
- k8s
- Vue
- 뷰
- 코딩테스트연습
- 자바
- Oracle
- builder-pattern
- IntelliJ
- 해시맵
- vuejs
- dabase
- 알고리즘
- superBuilder
- cd
- docker
- java
- JPA
- ORM
- CKA
- CI/CD
- SpringMVC
- 프로그래머스
- Kubernetes
- DevOps
- Di
- Spring
- CI
- map
Archives
- Today
- Total
문홍의 공부장
[Docker] ch01. 도커란? 본문
반응형
chapter01. 도커란?
도커(Docker)
1. 특징
- 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트
- Go 언어 기반으로 개발됨
- 가상머신과 달리 도커 컨테이너는 성능의 손실이 거의 없어 차세대 클라우드 인프라 솔루션으로 주목
- 도커 엔진: 컨테이너를 생성하고 관리하는 주체. 도커에 관련된 모든 프로젝트를 의미 (도커 컴포즈Docker Compose, 레지스트리Private Registry, 도커 머신Docker Machine, Kitematic 등)
2. 가상머신과 도커 컨테이너
2-1) 가상머신
- 가상화 기술: 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 단위. 운영체제는 가상머신(VM) 단위로 구분된다. (Ubuntu, CentOS 등)
- 각 게스트 OS 는 다른 게스트 운영체제와 완전히 독립된 공간과 시스템 자원을 할당받아 사용한다. ex) VirtualBox, VMWare (하이퍼바이저 위에 여러 개의 게스트 OS(운영체제) 를 올리는 구조)
장단점
- 하이퍼바이저를 반드시 거치기 때문에 일반 호스트에 비해 성능 손실 발생
- 가상머신은 OS 사용을 위한 라이브러리, 커널 등을 모두 포함하기 때문에 가상머신 배포를 위한 이미지로 만들었을 때 이미지의 크기 또한 커짐.
- 완벽한 운영체제를 생성할 수 있다
- 단점: 일반 호스트에 비해 성능 손실 있음. 가상머신 이미지를 애플리케이션으로 배포하기에 크기의 부담이 있음
2-2) 도커 컨테이너
- 가상화 공간 생성을 위한 성능 손실 없음
- 컨테이너에 필요한 커널은 호스트의 커널을 공유, 애플리케이션 구동에 필요한 라이브러리 및 실행파일만 존재하기 때문에, 이미지로 만들었을 때 용량 또한 줄어든다.
- -> 가상 머신의 단점 보완
도커를 사용해야 하는 이유 ?
: 도커는 컨테이너 생태계에서 표준으로 사용하고 있음
- 애플리케이션의 개발과 배포 용이
- 독립적인 개발 환경 보장: 컨테이너 내부에서 소프트웨어를 설치하고 설정 파일을 수정해도 호스트OS 에는 영향을 끼치지 않는다.
- 배포 용이: 컨테이너를 ‘도커 이미지’라는 일종의 패키지로 만들어 운영 서버에 전달만 하면 된다. (배포를 위해 운영 서버에 새로운 패키지나 각종 라이브러리를 설치할 필요 없음)
- 개발/운영 환경의 통합 가능: 다른 서버에서도 컨테이너로 똑같이 복제할 수 있다
- 속도 향상: 커널을 포함하지 않기 때문에, 이미지 크기가 크지 않음. 이미지 내용을 레이어 단위로 구성하며, 중복되는 레이어의 재사용이 가능해 애플리케이션 배포 속도 향상
- 애플리케이션의 독립성, 확장성 향상
- 모놀리스(Monilith) <-> 마이크로서비스(MSA)
- 모놀리스: 소프트웨어의 여러 모듈이 상호작용하는 로직을 하나의 프로그램 내에서 구동. 기능이 거대해질수록 소프트웨어 자체의 확장성, 유연성 감소
- MSA: 여러 모듈을 독립된 형태로 구성하기 때문에 변화에 빠르게 대응 가능, 모듈 관리 용이. 여러 모듈에게 독립된 환경을 동시에 제공할 수 있다.
반응형
'개발 > DevOps' 카테고리의 다른 글
[Docker] chapter03. 도커 스웜 (0) | 2022.01.03 |
---|---|
[Docker] chapter02-4. 도커 데몬 (0) | 2021.12.30 |
[Docker] chapter02-3. 도커 파일 (기타 명령어) (0) | 2021.12.30 |
[Docker] chapter02-3. 도커 파일 (0) | 2021.12.29 |
[Docker] ch02-1. 도커 컨테이너 (0) | 2021.12.29 |