겉바속촉
[DOCKER] 도커_개요 및 기능 본문
DOCKER에 대해서
공부해보도록 하겠습니다
!^^!
컨테이너 유형
1. System Container : 여러 process를 격리 --> ex) LXC, Zme, Jail
각각의 컨테이너마다 systemd 독립적으로 제공
기존의 컨테이너 방식
2. Application Container : main 서비스가 하나! (기본 원칙) 있고 격리 --> ex) Docker
호스트마다 systemd 공유
시스템컨테이너보다 더 경량화된 방식
MSA
시스템 개발 시
애플리케이션을 제품 환경에 가동시키려면 다음 요소들이 필요
1. 애플리케이션의 실행 모듈 (프로그램 본체)
2. 미들웨어 or 라이브러리군
3. OS/네트워크 등과 같은 인프라 환경 설정
- 일반적인 시스템 개발 흐름 : 개발환경 -> 테스트 환경 -> 스테이징 환경 -> 제품환경
아무리 같은 환경으로 하려고 해도 문제 예측이 쉽지 않다
os 버전이나 아주 작은 차이라도 결과가 다른 경우가 생김
그래서 애자일과 같은 방법이 자꾸 나오는 것!! - Docer를 사용한 시스템 개발 흐름 : 도커의 컨테이너 기술 --> 서버 가상화 기술
메인 서비스를 해당 호스트에 전용으로 설치해서 사용
애플리케이션 파일 set과 os에서 필요한 파일 set 들을
그냥 이미지로 만들어버리고 컨테이너에 올려 배포하는 것
어떤 하드웨어에서든지, 어떤 버전이든지 도커엔진만 설치되어있다면
필요한 이미지(파일 set) 다운받아서 사용!! - 도커 이미지 --> 컨테이너 올려서 진행
예전 : yum install mysql .... 기타 등등 패키지 설치에다가 서버 관련된 설정 파일들로 변경해야하고 그리고 systemctl start mysql - enable .... 이런 것들을 다 했어야 했지만 도커는 모두 이미지로 되어 있는 것!!!
Docker의 기본이 되는 3가지 기능
1. Build
Docker 이미지를 만드는 기능
애플리케이션의 실행에 필요한
프로그램 본체, 라이브러리, 미들웨어, os나 네트워크 설정 등을 하나로 모아서 Docker 이미지로 생성
하나의 이미지 <---- 하나의 애플리케이션만 넣어둠
여러 개의 컨테이너를 조합하여 서비스 구축하는 것
2. Ship
Docker 이미지를 공유하는 기능
도커 공식 레지스트리 ---> Docker Hub
도커허브는 리눅스 배포판이 기본 기능을 제공하는 베이스 이미지를 배포
공식 이미지 외 개인이 작성한 것들도 Docke hub에 공개 및 공유 가능
3. Run
Docker 컨테이너를 작동시키는 기능
scale out 방식을 사용 --> 같은 기능을 복제해서 사용하는 방식
--> 하나의 동일한 이미지를 여러개의 컨테이너에 올릴 수 있기 때문
Docker 에디션
- Docker 릴리스 : 도커는 에디션 따라 정기적으로 릴리스가 발생
Stable --> 매번 릴리즈되는 것이 아니라서 안정적인 것을 원할 때 사용
Edge --> 매번 릴리즈되서 최신판 사용
Moby Project -> 안정화를 위해 1년 이상 거치는 오픈소스 프로젝트
(주요 컴포넌트는 containerd, LinuxKit, InfraKit)
Docker 컴포넌트
- Docker Engine : 도커의 핵심 기능 ---> 도커 데몬
- Docker Registry : 이미지 공개 및 공유
- Docker Compose : 컨테이너 일원 관리 ---> 여러개의 컨테이너 배포를 위한 것
- Docker Machine : 도커 실행 환경 구축 ---> 여러 대의 호스트 제어를 위해
- Docker Swarm : 클러스터 관리 ---> 여러개의 도커 host를 묶어 관리 가능함
(Kubernetes라는 오픈소스도 이용 가능한데 Swarm보다 공부가 많이 필요하지만 안정적인 sol제공해서 대기업에서 많이 사용)
컴포넌트들의 전체적인 구성과 역할
- docker run 하면 컨테이너 생성되고 docker engine은 active host
- docker machine은 docker engine 장착한 것들을 등록해서 active 설정
remote로 해당 명령을 요청
docker pull 하면 docker repositry에서 docker engine으로 이미지 다운 - docker swarm이나 K8S는 도커 스케쥴러로 구성할 수 있는 스케쥴링 수행
도커 머신들을 cluster로 묶어 거대한 super컴퓨터로 만들어 제어 ==> container orchestration solution
'IT 일기 (상반기) > DOCKER' 카테고리의 다른 글
[DOCKER] 도커_이미지조작 (0) | 2020.12.30 |
---|---|
[DOCKER] 도커_웹 서버 작동시키기 (0) | 2020.12.30 |
[DOCKER] 도커_설치 및 작동 확인 (0) | 2020.12.30 |
[DOCKER] 도커_작동 구조 (0) | 2020.12.30 |
[DOCKER] 도커_가상머신에 설치하기 (0) | 2020.12.29 |