![](https://velog.velcdn.com/images%2Fsik2%2Fpost%2Fd1c37d8a-94f1-4a42-875d-8e6bbe543216%2Fimage.png)
컨테이너 기술
개요
- 도커란 컨테이너 기반의 오픈소스 가상화 플랫폼
컨테이너
란 호스트 OS상에 논리적인 구획(컨테이너)
을 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리
나 애플리케이션
등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만드는 것
기존 가상화 방식과의 차이
기존
- 기존에는 OS를 가상화 하였다(VMware, VirtualBox) ⇒ 호스트 OS위에 게스트 OS 전체를 가상화하여 사용하는 방식
- 간단하지만 무겁고 느려서 운영환경에서 사용 불가하다.
개선책
- CPU 가상화 기술 HVM을 이용한 Kernel-based Virtual Machine(KVM) 과 반가상화(Paravirtualization) 방식의 XEN 등장
- 이러한 기술을 기반으로 Open Stack, AWS, Rackspace 같은 클라우드 서비스에서 가상화 컴퓨팅 기술의 기반이 되었다.
- 개선책이기는하나 성능에 손실이 있다.
도커의 아이디어
- 프로세스
격리
하는 방식이 등장
- 프로세스를 격리시키기 때문에
가볍고
빠르게
동작한다.
- CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도
거의 손실이 없다.
![](https://velog.velcdn.com/images%2Fsik2%2Fpost%2F2a3d23fd-72ac-47f0-b9a0-bcb169db77e3%2Fimage.png)
이미지 출처
장점
하나의 서버
에서 여러개의 컨테이너
를 실행하며 서로 영향을 미치지 않고
독립적으로 실행
하므로 가볍게 느껴진다.
실행중인 컨테이너
에 접속하여 명령어
를 입력할 수 있다.
CPU
나 메모리 사용량
을 제한
할 수 있고 호스트의 특정 포트
와 연결
하거나 호스트의 특정 디렉토리를 내부 디렉토리인 것처럼 사용가능
새로운 컨테이너
를 만드는데 속도가 빠르다
(2초미만)
도커의 이미지
![](https://velog.velcdn.com/images%2Fsik2%2Fpost%2Ffe5851da-a5e3-40ab-9712-79fb436da17c%2Fimage.png)
이미지 출처
개요
이미지
는 컨테이너의 실행
에 필요한 파일
과 설정값등
을 포함
하고 있는것
상태값을 가지지 않고 변하지 않는다
(immutable)
- 컨테이너는 이미지를 실행한 상태 추가되거나 변하는 값은 컨테이너에 저장됨
같은 이미지
에서 여러개의 컨테이너 생성가능
- 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남음
한마디로 개꿀띠
새로운 서버에 개발환경 구축시 의존모듈을 일일이 설치할 필요가 없다!
레이어 저장 방식(feat 도커에 열광하는 이유)
![](https://velog.velcdn.com/images%2Fsik2%2Fpost%2F1fa5ab37-2146-486e-98f1-804223e5611f%2Fimage.png)
이미지 출처
개요
- 도커 이미지는 컨테이너를 실행할 모든 정보를 담고 있기 때문에 요량이 수백 메가다
- 처음엔 상관없지만 이미지 파일이 늘어났을 경우 비효율이 발생한다
- 이를해 해결하고자
layer 개념
이 사용
3줄 요약
- 개발 생태계에 맞추어 탄생한 아이디어 작품(마치 아이폰과 같이)
- 가상머신과 비교시 훨등한 실행 속도, 메모리 엑세스, 파일 시스템, 네트워크 실행 성능 향상
- 도커는 이미지를 구성하여 컨테이너(실행 환경)에서 실행가능(자동화)
다음포스팅 예고
레이어 저장 방식이란 무엇이고 왜 더 좋을까?
ref
초보를 위한 도커 안내서 - 도커란 무엇인가?