(제가 이해한 내용을 바탕으로 작성하였습니다. 잘못된 부분이 있을 경우에는 댓글 남겨주세요.)
도커란?
컨테이너 기반의 오픈소스 가상화 플랫폼이다.
내가 사용하는 가상 머신 VMware의 같은 경우에는 VM에서 사용하는 OS 자체를 가상화하여 컴퓨터 OS에서 동작시키는 방법이다. 가상 머신의 경우에는 무겁고 느리다는 단점이 생기는데, 이를 개선하기 위해 "컨테이너"라고 불리는 프로세스를 격리시키는 방식을 사용한다.
여기서 쉽게 혼동할 수 있는 부분이, '컨테이너 = 도커' 개념으로 생각하는 것이다. 컨테이너에는 다양한 종류의 컨테이너 기술들이 존재하고, 도커는 컨테이너 기술 중에 하나이다. ('컨테이너 > 도커') 또한 도커는 리눅스 컨테이너(LXC) 기술을 기반으로 구축되었으나 이후, 종속 관계에서 벗어나 컨테이너의 이동성과 유연성을 높여 개발자들이 컨테이너를 훨씬 더 쉽게 활용할 수 있도록 만들었다.
- 도커의 이점 - 1. 분리와 조절 기능을 제공 : CPU, GPU, 메모리, I/O 네트워킹 등 시스템 리소스 사용 방식을 규정할 수 있다 2. 이식성 제공 : 호스트 운영체제와 연결할 필요가 없기 때문에 운영 환경을 최소한으로 유지할 수 있다. 3. 결합성 제공 : 웹서버, 데이터베이스, 인-메모리 캐스 등 하나의 스택 안에서 별개의 구성요소를 가진다. 각각의 구성요소들이 컨테이너로 제공되어, 독립적으로 유지, 업데이트, 교체될 수 있다. 4. 오케스트레이션과 스케일링이 쉽다. ** 오케스트레이션 : 컨테이너를 쉽고 빠르게 배포, 확장, 관리를 자동화시켜줌(도구 예 : Kubernetes, Docker Swarm, LXC) |
도커를 사용하기 위해서 "이미지"라는 개념을 알아야 한다. 이미지는 각각의 컨테이너를 사용하는데 필요한 파일과 설정 값 등을 포함하고 있는 것이다. 그러면 컨테이너를 실행하기 위해 매번 새로운 컨테이너를 사용할 때마다 이미지 파일을 다운로드해야 하는가? 아니다.
레이어(layer)라는 개념을 사용하고, 유니온 파일 시스템을 이용하여 여러 개의 레이어를 하나의 파일 시스템으로 사용할 수 있게 해 준다. 기존에 있는 이미지에 새로운 이미지를 추가시킬 때마다 새로운 레이어가 생성되는 방식이라고 생각하면 된다. layer로 구성되어 있기 때문에 스냅샷을 뜨기가 쉽고 빠르다.
(과정)
1) 코드 개발(이미지화)
2) Dockerfile 생성
3) Dockerfile Image 생성
4) Container Orchestrator를 통한 배포
5) Container run
6) Container image Push
(+ 도커 이미지 추가 설명)
https://jihyeong-ji99hy99.tistory.com/212
(+ 도커 각티슈 후기)
https://jihyeong-ji99hy99.tistory.com/265
'학교 공부 > 시스템' 카테고리의 다른 글
[시스템] x86 시스템, 메모리 접근 모드와 동작 (0) | 2021.03.17 |
---|---|
[시스템] x86 시스템, 레지스터 종류 정리(핵심/간단) (0) | 2021.03.17 |
[운영체제] 병행성 제어와 교착상태 (1) | 2020.03.06 |
[운영체제] CPU 스케줄링 알고리즘 (0) | 2020.03.05 |
[운영체제] CPU 스케줄링이란? (0) | 2020.03.03 |
댓글