Tools/docker

[Docker] Docker란 무엇인가

MOMOBOB 2021. 4. 29. 21:10
반응형

1. 도커란

  • 컨테이너 기술을 지원하는 다양한 프로젝트 중에 하나로 도커로 인해 컨테이너 기술이 알려짐
  • 다양한 운영체제에서 사용 가능(리눅스, 윈도우, MacOS)
  • 의존성 및 파일 시스템까지 패키징하여 빌드, 배포, 실행을 단순화하였음
  • 리눅스의 네임 스페이스와 cgroup와 같은 커널 기능을 사용하여 가상화.

  • 이미지 : 필요한 프로그램과 라이브러리, 소스를 설치한 뒤 만든 하나의 파일
  • 컨테이너 : 이미지를 격리하여 독립된 공간에서 실행되는 가상 환경

 

2. 도커의 필요성

  • 컨테이너와 VM
    • 컨테이너 : 특정 작업을 수행하는 단일 기능(마이크로서비스라고 함)이 컨테이너에 패키징됨. 경량화 속성과 공유 운영 체제(OS)로 인해 여러 환경 간에 매우 쉽게 이동 가능하다, 일반적으로 크기는 메가바이트 단위이다.
    • VM : VM은 자체 OS를 포함하고 있어 리소스 집약적인 기능 여러 개를 동시에 가능. 애플리케이션 종속성 및 대규모 OS 설치 공간 등의 단점을 증대시킬 수 있음. 일반적으로 크기가 기기바이트 단위이다

            ▶ 하이퍼바이저의 필요없는 공간을 활용하면 더 많은 자원을 앱에 투자 가능

 

 

 

반응형

 

 

3. 컨테이너 성능 비교

  • CPU 이용량

 

 

 

  • Native, VM, 컨테이너별 GFLOPS 비교

GFLOPS(GPU Floating point Operations Per Second) : 초당 부동소수점 연산량, 컴퓨터의 성능을   

수치로 나타낼 때 쓰는 단위

              ▶ 가상환경을 제공하는데 네이티브에 준하는 성능을 제공

 

4. 컨테이너를 격리하는 기술

리눅스 네임 스페이스

각 프로세스가 파일 시스템 마운트, 네트워크, 유저(uid) 호스트 네임(uts) 등에 대해 격리하는 기술

리눅스 컨트롤 그룹

프로세스로 소비할 수 있는 리소스 양(CPU, 메모리, I/O, 네트워크 대역대, device노드 등)을 제한

 

5. 도커의 한계

  • 서비스가 커지면 커질수록 관리해야하는 컨테이너의 양이 급격히 증가함.
  • 배포 및 컨테이너 배치 전략이 필요함.
  • 스케일-, 스케일-아웃이 어려움.

     -> 쿠버네티스 등의 오케스트레이션 이용

 

참고 : www.youtube.com/watch?v=uE2MTTTG8uc

반응형