[Docker] 2. 도커란?

Denver·2022년 9월 6일
0
post-thumbnail

도커란?

컨테이너 기술 지원 프로젝트중 1
리눅스의 네임 스페이스와 cgroups같은 커널 기능 사용하여 가상화
컨테이너는 이전부터 존재했는데 도커로 알려지고, 표준이됨
모든 OS에서 가능하나 윈도우는 하이퍼바이져 사용해서 부하있음
애플리케이션+의존성, 파일 시스템까지 패키징하여 빌드, 배포, 실행을 단순화함
App App App
Docker Engine
OS

클라우드 서비스처럼 사용 가능

이미지 : 프로그램, 라이브러리, 소스를 설치해 하나로 만든 파일
컨테이너 : 이미지를 격리하여 독립된 공간에서 실행한 가상환경
필요한 환경 다운받아서 사용하고 삭제하고 가능
Vm보다 오버헤드 줄어듦(vm은 vm마다 게스트 os 설치하고 사용해야하기때문)
컴포넌드 충돌, 종속성 문제 x
성능도 native 와 비슷하게 사용가능(vm은 절반수준)

컨테이너 격리 기술

리눅스 커널에 네임스페이스, 컨트롤 그룹

리눅스 네임 스페이스

: 각 프로세스가 파일 시스템마운트, 네트워크, 유져(uid), 호스트네임(uts) 등에 대해 시스템에 독립된 뷰 제공

리눅스 컨트롤 그룹

: 프로세스로 소비할 수 있는 리소스 양(cpu, mem, i/o, 네트워크 대역, devoce node 등) 제한

도커의 한계

서비스카 커질수록 관리해야 할 컨테이너 증가
-> 도커여도 관리 어렵
-> 쿠버네티스 등 오케스트레이션
스케일-인, 스케일- 아웃 어려움

profile
까먹었을 미래의 나를 위해

0개의 댓글