Docker & kubernetes
1장. Docker 와 가상환경
최슬슬
2024. 1. 6. 17:05
가상환경 | Docker | |
구성 | 하이퍼 바이저를 이용해 여러개의 운영체제를 하나의 호스트에서 생성하여 사용 | 리눅스 자체 기능을 사용하에 프로세스 단위의 격리 환경 생성 |
성능 | 하이퍼 바이저를 반드시 거치기 때문에 일반 호스트에 비해 성능 손실 발생 | 프로세스 단위의 격리 환경으로 성능 손실이 거의 없음 |
이미지 용량 | 운영체제를 구동하기 위한 라이브러리, 커널 등을 포함하므로 배포해야하므로 이미지 용량이 큼 | 애플리케이션을 구동하는데 필요한 라이브러리 및 실행 파일만 존재하기 때문에 이미지 용량이 작음 |
이미지 생성 | 생성 시간이 오래걸림 | 가상 환경보다 빠름 |
Docker의 장점
- 애플리케이션 개발과 배포가 편리
- 로컬 OS(호스트 OS)와 격리된 공간에서 컨테이너가 구동되므로, 컨테이너 자체에 특별한 권한을 주지 않는 이상 컨테이너 내부에서 무슨 일을 하든 호스트 OS에는 영향이 가지 않음.
- 작업이 끝나면 컨테이너 자체를 이미지로 만들어 배포하면 됨. 이때 이미지 안에는 서비스를 개발할 때 사용한 환경들이 저장되어 있기 때문에 따로 환경 설정을 하지 않아도 됨
- 가상 머신 이미지와 다르게 커널이 포함되지 않아 이미지 크기가 작은 편.
- 이미지 내용을 레이어 단위로 구성하여, 중복되는 레이어를 재사용할 수 있게 구성함 → 배포 속도가 빠름.
- 여러 애플리케이션의 독립성과 확장성 상승
- 소프트웨어의 자체 확장성과 유연성을 보장하기 위해 마이크로 서비스 구조가 새롭게 떠오르고 있음.
- 마이크로 서비스 구조는 여러 모듈을 독립된 형태로 구성하기 때문에 언어에 종속되지 않고 변화에 빠르게 대응하여 모듈별 관리가 용이하다는 장점이 있음 → 컨테이너는 수 초내로 생성, 시작할 수 있을 뿐만 아니라 여러 모듈에게 독립된 환경을 동시에 제공할 수 있어 마이크로 서비스 구조에서 가장 많이 사용되고 있음