요즘 도커가 핫하다는데.....도커....컨테이너... 애매하게는 들었지만 확실하게는 몰라서 개념을 정리하기로 한다.
오늘도 테코톡의 도움을 받아봅니다^^~
Docker
컨테이너 기반 가상화 도구
서버 가상화
하나의 물리적 서버 호스트에서 여러 개의 서버 운영 체제를 게스트로 실행할 수 있게 해주는 소프트웨어 아키텍쳐
= 하나의 서버의 자원을 여러 서버들이 할당받아서 성능을 분산시키고, 분산 서버는 다른 서비스를 수행 가능.
각 가상머신에는 여러 운영체제가 설치되어 있고, 하이퍼바이저에 의해 생성되고 관리되는 운영체제를 게스트 운영체제라고 부른다.
하이퍼바이저
- OS들에게 자원을 나누어주며 조율한다.
- OS들의 커널을 번역해서 하드웨어에게 전달한다.
대표적인 가상화 툴 : VirtualBox , VMware
가상화 작업은 하이퍼바이저를 반드시 거쳐야한다. 또 배포하기 위한 이미지로 만들었을 때 크기도 커진다.
= 성능이 느리고, 용량으로도 부담이 크다.
이를 해결하기 위해 나온 것이 컨테이너
컨테이너
- 가상화된 공간을 생성하기 위해 리눅스 자체기능인 chroot, 네임스페이스, cgroup을 사용함으로써 프로세스 단위의 격리 환경을 만듦
- 컨테이너 안에는 애플리케이션을 구동하는데 필요한 라이브러리 및 실행파일만 존재함
- 생성->운영->제거까지의 프로세스의 라이프 사이클 관리
- 이미지의 목적에 따라 생성되는 프로세스 단위의 격리 환경
*도커=/=컨테이너! 도커는 컨테이너 기술에 여러 기능을 추가한 오픈소스 프로젝트이다.
컨테이너 기반 가상화
- 이미지의 용량이 줄어든다.
- 애플리케이션을 구동하는데 필요한 라이브러리 및 실행파일만 존재함
- 속도가 빠르고 성능 손실이 없다.
컨테이너를 사용하는 이유
- Host와의 격리를 통해 독립적인 환경을 보장
- 프로세스를 컨테이너단위로 사용
- 프로세스의 관리, 확장이 용이
컨테이너 관리
사용자는 Doker Engine을 통해 컨테이너를 관리할 수 있다.
Doker Engine
유저가 컨테이너를 쉽게 사용할 수 있게 해주는 주체
- 컨테이너 관리
- 이미지 관리
- 볼륨(데이터 저장소) 관리
- 네트워크 관리
'Study > 기술 및 용어 정리' 카테고리의 다른 글
Ngnix 개념 및 Apache 와 비교 (0) | 2023.06.16 |
---|---|
[Spring JPA] JPA의 개념과 장단점 (0) | 2023.06.15 |
Spring과 Spring Boot의 개념과 차이 (0) | 2022.07.22 |
용어정리 - JSP / 서블릿 (0) | 2022.07.21 |
정렬 개념 정리 - 퀵 정렬(Quick Sort), 합병 정렬(Merge Sort) (0) | 2022.07.20 |