Docker란?

오송아·2021년 7월 8일
0

Docker

목록 보기
1/1
post-thumbnail

들어가기 앞서 도커를 쓰는 이유는

installer는 서버, 패키지, 운영체제등에 따라 많은 에러가 발생하므로 도커를 사용해
어떤 프로그램을 다운받는 과정을 간단하게 만들기 위함

도커란?

컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구이며, 컨테이너 기반의 오픈소스 가상화 플랫폼이며 생태계

서버에서의 컨테이너는 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줌. AWS, Azure, Google cloud등 어디서든 실행 가능. 즉, 간단하고 편리하게 프로그램을 실행 시켜주는 것

컨테이너 이미지란?

코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용 프로그램을 실행하는데 필요한 모든 것을 포함하는 가볍고 독립적이며 실행 가능한 소프트웨어 패키지


간단히, 도커 이미지는 프로그램을 실행하는데 필요한 설정이나 종속성을 가지고 있고, 도커 이미지를 이용해서 컨테이너를 생성하며 도커 컨테이너를 이용하여 프로그램을 실행

도커 사용 흐름이란?

  1. 도커 client(CLI)에 커맨드를 입력
  2. 도커 server(Daemon)이 커맨드를 받아 이미지 생성 혹은 컨테이너 실행 등 모든 작업 진행
  3. 캐시 되었다면 Unable to find image ~ 문구 없이 실행되며 캐쉬된 이미지로 컨테이너 만들어서 실행

도커와 기존 가상화 기술과의 차이

하이퍼바이저 기반의 가상화 출현되면서 논리적으로 공간을 분할, VM이라는 독립적인 가상 환경 서버 이용. 많이 사용하는 VM은 소프트웨어처럼 호스트 OS 위에서 실행되며, 하드웨어 자원을 VM 내부의 게스트 OS에 에뮬레이트 하는 방식으로 오버헤드 크다. 하지만 게스트 OS 종류에 대한 제약이 없고 구현이 다소 쉽다.

공통점 : 기본 하드웨어에서 격리된 환경 내에 애플리케이션 배치
차이점 : 격리된 환경을 얼마나 격리시키는지 차이
도커 컨테이너에서는 Host OS에 올려 사용하므로 동일한 커널 공유
VM에서는 Host OS와 Guest OS가 독립되어 있음, 무거움, 비교적 사용법이 간단, 속도 느림

도커 컨테이너 격리 방법

리눅스에서 쓰이는 Cgroup과 네임스페이스는 컨테이너와 호스트에서 실행되는 다른 프로세스 사이에 벽을 만드는 리눅스 커널 기능들

  • C Group : 어떤 어플의 사용량이 많으면 그 어플리케이션 같은 것을 C group에 넣어 CPU와 메모리 사용 제한
  • 네임스페이스 : 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술
profile
백엔드 개발자

0개의 댓글