1. Docker란?
- 오픈 플랫폼
- 어플리케이션을 인프라에서 분리해준다
- 신속하다
- 인프라를 어플리케이션을 관리하는 것처럼 관리할 수 있다
- 코드 배포에 용이하다
- 컨테이너 기반 가상화 도구
- 어플리케이션을 컨테이너라는 단위로 격리해 실행하고 배포하는 기술
2. 컨테이너란?
- 컨테이너는 가상화 기술 중 하나
- 호스트 운영체제 위 여러 개의 격리된 환경을 생성
- 각각의 컨테이너 안에서 어플리케이션 실행
3. 가상화 기술이란?
- 하나의 물리적인 컴퓨터 자원(CPU, 메모리, 저장장치) 등을 가상적으로 분할해 여러 개의 가상 컴퓨터 환경을 만들어 내는 기술. 이를 통해 물리적인 컴퓨터 자원을 더육 효율적으로 사용할 수 있으며, 서버나 어플리케이션을 운영할 때 유연성과 안정성을 제공한다
하이퍼바이저란, 가상 머신을 생성하고 구동하는 소프트웨어
- OS에 자원을 할당 및 조율
- OS들의 요청을 번역해 하드웨어에 전달
1) 하이퍼바이저
장점
- 각 VM은 완전히 독립된 OS를 가지고 VM 간 물리적 자원을 가상화하여 공유
단점
- 가상화 오버헤드가 발생할 수 있다. VM을 시작하고 관리하는 데 리소스가 소요된다
2) 컨테이너 엔진
컨테이너라는 가상화 단위를 사용해 어플리케이션을 패키징하고 실행하는 소프트웨어
- 호스트 운영체제의 커널을 공유하며, 각 컨테이너는 어플리케이션 및 종속성을 격리된 환경에 패키징한다
- 가볍고 공유 리소스를 활용해 높은 효율성을 가진다
- 일반적으로 하이퍼바이저에 비해 더 가볍고 빠르게 배포 및 확장할 수 있다
- 컨테이너화된 환경은 가상화된 환경보다 가볍고 이식성이 뛰어나다
1) 컨테이너 생성 및 관리
2) 이미지 관리 : 이미지는 컨테이너 실행에 필요한 모든 정보와 파일 시스템을 포함하며, 이미지를 기반으로 여러 컨테이너 인스턴스를 생성할 수 있다
3) 네트워킹 : 컨테이너 간 통신 및 호스트 시스템과의 네트워크 연결을 관리한다. 컨테이너는 가상 네트워크 인터페이스를 통해 통신하며, 네트워크 포트를 매핑해 외부와 통신할 수 있다
4) 스토리지 관리 : 컨테이너의 파일 시스템을 관리하고 데이터를 영속적으로 저장하는 기능을 제공한다. 이를 통해 데이터의 지속성과 백업이 가능하며, 데이터 볼륨을 공유하는 데 사용된다
5) 스케줄링 및 오케스트레이션 : 몇몇 컨테이너 엔진은 여러 컨테이너 인스턴스를 자동으로 관리하고 배포하는 기능을 제공해 대규모 어플리케이션의 관리 및 확장이 용이해진다
- 가장 대중적인 컨테이너 엔진 : 도커
그외 : 쿠버네티스, 컨테이너드, 포드맨 등
* 비교
- 접근 방식과 사용 사례에서 차이가 있다
- 일반적으로 하이퍼바이저는 가상 머신 단위로 사용되며, VM은 완전히 독립된 운영 체제를 실행한다. 주로 서버 가상화 및 데이터 센터 환경에서 사용된다
- 컨테이너 엔진은 어플리케이션 단위로 사용되며, 컨테이너는 공유 커널을 활용해 실행된다. 주로 개발, 테스트, 배포, 스케일링 등의 프로세스를 간편하게 관리하기 위해 사용된다
~ 각 특장점으로 인해 선택해서 사용하거나 두 방식을 혼합해서 사용할 수도 있다 : 하이퍼바이저 위에서 여러 컨테이너를 실행하는 방식 등
3) 도커 엔진
1. 도커 데몬
도커 엔진의 핵심 구성 요소로, 컨테이너 생성 및 관리 작업을 처리하는 백그라운드 서비스이다. 데몬은 컨테이너의 라이프사이클 관리, 이미지 관리, 네트워킹, 스토리지 관리 등 다양한 작업을 수행한다
2. 도커 클라이언트
사용자가 도커 데몬과 상호작용하기 위해 커맨드 라인 도구 또는 API를 통한 클라이언트 인터페이스를 제공한다. 사용자는 도커 클라이언트를 사용해 컨테이너 및 이미지를 관리하고 컨테이너를 실행, 중지, 로그 확인 등의 작업을 수행할 수 있다
도커의 컨테이너 엔진 기반 특징
1) 리눅스 커널의 기능을 사용해 만들어짐
- chroot : 파일 시스템을 격리
- namespace : 프로세스 격리
- cgroup : 하드웨어 지원 격리
2) 프로세스 단위의 격리 환경
도커 오브젝트
1) 도커 이미지
- 도커 컨테이너를 만들기 위한 읽기 전용 템플릿
2) 도커 컨테이너
- 한 도커 이미지의 실행 가능한 인스턴스
- 어플리케이션을 실행하기 위한 모든 파일과 설정 정보를 포함하는 패키지
3) 도커 레지스트리
- 도커 이미지를 관리하고 저장하는 곳 ~ 도커 허브
'개발공부 > 원티드 챌린지 정리' 카테고리의 다른 글
8월 백엔드 챌린지 : 도커 프로 (3) (0) | 2023.10.02 |
---|---|
8월 백엔드 챌린지 : 도커 프로 (2) (0) | 2023.10.02 |
7월 백엔드 챌린지 4. 예제 적용 (0) | 2023.09.18 |
7월 백엔드 챌린지 3. 사용자 수에 따른 규모를 확장하는 방법 2 (0) | 2023.08.06 |
7월 백엔드 챌린지 2. 사용자 수에 따른 규모를 확장하는 방법 (0) | 2023.08.01 |